Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Sample App: Todolist #46

Merged
merged 103 commits into from
Mar 10, 2020
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
103 commits
Select commit Hold shift + click to select a range
28c247f
Sample App: Todolist
sgammon Feb 22, 2020
343d995
Add simple tests for Soy renaming maps
sgammon Feb 23, 2020
3060c27
Cleanup cloudbuild targets
sgammon Feb 23, 2020
ae16d56
Switch tests off in GCB
sgammon Feb 23, 2020
d0d3041
Cleanup and testing for existing core.backend logic
sgammon Feb 23, 2020
65ca6a0
Fix definitions for JS interop
sgammon Feb 23, 2020
72c1987
Early `PageContext` logic and example
sgammon Feb 26, 2020
9d4a942
Refactor Java dependencies and rules
sgammon Feb 27, 2020
a8d38f1
Seal Java dependencies
sgammon Feb 27, 2020
df4f84d
Further gRPC support in Todolist
sgammon Feb 27, 2020
181c10a
New todolist port arrangement
sgammon Feb 27, 2020
a22d045
Add Todolist sample to cloudbuild config
sgammon Feb 27, 2020
f58af78
Eliminate remote build in GCB
sgammon Feb 27, 2020
6d61989
Adjust build stamp to fallback to COMMIT_SHA variable
sgammon Feb 27, 2020
67b3ee7
Apply fix for image tag in GCB
sgammon Feb 27, 2020
65d6964
Add K8S rules dependency
sgammon Feb 27, 2020
77ad195
Further adjustments to GCB config
sgammon Feb 27, 2020
2a2ed11
Fix misplaced deploy jar target
sgammon Feb 27, 2020
096e600
Pull and tag latest todolist image on build
sgammon Feb 27, 2020
412a428
Add initial ambassador config
sgammon Feb 27, 2020
0c0abb6
Remove failing build artifact upload in GCB
sgammon Feb 27, 2020
7ae86bc
Add initial test for PageContext
sgammon Feb 27, 2020
17f2fc4
Improvements to page context integration
sgammon Feb 27, 2020
6c8067b
Adjust coverage reporting
sgammon Feb 27, 2020
054b632
Refactor `HomeController` to use new `AppController`
sgammon Feb 27, 2020
a792b62
Cleanup and simplify PageContext/PageContextManager
sgammon Feb 27, 2020
97a7df1
Initial Todolist infrastructure configs
sgammon Feb 27, 2020
5780b51
Toolchain support for Docker, Kubernetes and packaging
sgammon Feb 27, 2020
5d53c0f
Pull in Envoy base image, setup K9 defaults
sgammon Feb 27, 2020
b055485
Add rules_pkg dependency
sgammon Feb 27, 2020
9be4ac4
Add yarn run alias for gRPC CLI
sgammon Feb 27, 2020
0a23e43
Converge bazelrc and WORKSPACE for Todolist
sgammon Feb 27, 2020
06111c2
Major work on Envoy proxy
sgammon Feb 27, 2020
7fdce21
Use manually-built Envoy image, for now
sgammon Feb 27, 2020
42af94c
Fix spacing issue in bazelrc
sgammon Feb 27, 2020
3398e52
Add external LB for testing
sgammon Feb 27, 2020
39d7c64
Use fully-qualified service DNS
sgammon Feb 27, 2020
46180e8
Setup devops flow for Envoy and Todolist (including deploy)
sgammon Feb 27, 2020
8c49f82
Fixes for ingress configuration
sgammon Feb 27, 2020
d3bb94e
Transition to independent NEGs
sgammon Feb 27, 2020
822ac52
[skip ci] Change to Bazel 2.1.0 in GCB
sgammon Feb 28, 2020
b58d5f0
Prep version bump -> 1.0.0-alpha2
sgammon Feb 28, 2020
af7c39d
Fix incorrect Bazel version in GCB
sgammon Feb 28, 2020
338e544
Fix prefix for Bazel images in GCB (late steps)
sgammon Feb 28, 2020
457a5b6
Pin and build K8S toolchain from source
sgammon Feb 28, 2020
ca55aed
Attempt fix for K8S transitive load
sgammon Feb 28, 2020
8a2ffd8
Upgrade K8S > 1.15.9
sgammon Feb 28, 2020
5021d04
Update K8S hash, add dep on infrastructure tools
sgammon Feb 29, 2020
2245c9d
Switchup alias for K8S repo infra
sgammon Feb 29, 2020
64224fa
Apply incompatible trip flags to fix K8S in GCB
sgammon Feb 29, 2020
be9c2f5
Alias K8S repo
sgammon Feb 29, 2020
408842e
Clean up K8S tools reference
sgammon Feb 29, 2020
5ea50ec
Add custom builder image for deploy, use it
sgammon Feb 29, 2020
13037f1
Switch up GCB image for 2nd-to-last build step
sgammon Feb 29, 2020
c3156a5
Upgrade GCB image -> v1b
sgammon Feb 29, 2020
2d980e5
Shift build steps to GCB image
sgammon Feb 29, 2020
f55ba12
Add Alpine version of builder image
sgammon Feb 29, 2020
a47b3bf
Prep CI image for use
sgammon Feb 29, 2020
5e751fb
Back to Ubuntu builder, install OpenJDK
sgammon Feb 29, 2020
ad34fa8
Add git to GCB environment
sgammon Feb 29, 2020
e072b63
Auto-remove packages in builder image
sgammon Feb 29, 2020
dfa595a
Upgrade to builder v1d
sgammon Feb 29, 2020
2c58a2a
Add unzip to build image :eyeroll:
sgammon Feb 29, 2020
de2dc64
Version bump for build image -> v1e
sgammon Feb 29, 2020
7e619be
Add regular Python package to GCB
sgammon Feb 29, 2020
eee35ac
Version bump for GCB -> v1f
sgammon Feb 29, 2020
b58a1c5
Upgrade GCB image -> v1g (add symlink to gcloud)
sgammon Feb 29, 2020
5536506
Fix Python rules in CI
sgammon Mar 1, 2020
85a237b
Add todolist internal gateway
sgammon Mar 1, 2020
ba9d649
Fix pip issues in CI
sgammon Mar 1, 2020
84b87b6
Remove external LB for Todolist
sgammon Mar 1, 2020
233f489
Always use latest GCB builder
sgammon Mar 1, 2020
54bbda7
Cleanup Python deps, add pypandoc to build env
sgammon Mar 1, 2020
80cf2da
Support for ibazel-based development flow
sgammon Mar 1, 2020
e682b15
Update Micronaut/Soy packages with context fix
sgammon Mar 1, 2020
9be8741
Fix access to ADC
sgammon Mar 1, 2020
2f3bdb4
Add ibazel_live_reload to Java app targets
sgammon Mar 1, 2020
1eb24c5
Support Java-side live reload
sgammon Mar 1, 2020
8a072fa
Re-enable test reporting, add Travis env vars
sgammon Mar 1, 2020
1210b1b
Stop upgrading deps in CI image
sgammon Mar 1, 2020
c315a42
Add Makefile task to build builder image
sgammon Mar 1, 2020
2be97ba
Major README and licensing cleanup/improvements
sgammon Mar 1, 2020
68acc27
Refactor app boot logic
sgammon Mar 1, 2020
8e761c1
Cleanup after refactor, fix various issues reported by Codacy
sgammon Mar 1, 2020
c7f59c3
Cleanup startup exception flow
sgammon Mar 1, 2020
51128cc
Add GraphQL to readme
sgammon Mar 1, 2020
98a8127
Root folder cleanup
sgammon Mar 1, 2020
f80251f
Add new badges to README
sgammon Mar 1, 2020
fd44552
Tweaks to README
sgammon Mar 1, 2020
4dce4f0
Remove .develop aliases
sgammon Mar 1, 2020
0e83380
Adjust coverage config to be lenient until it settles
sgammon Mar 1, 2020
398cd1a
Remove Makefile aliases
sgammon Mar 1, 2020
897fdd3
Fix Makefile command list in README
sgammon Mar 1, 2020
f5c16f4
Small nits
sgammon Mar 1, 2020
ee6ff22
Fix spaces-in-tags in Soy templates
sgammon Mar 1, 2020
42906de
Add interface to set page title
sgammon Mar 1, 2020
25193f9
Remove old page root
sgammon Mar 1, 2020
83a69d1
Install logback as the underlying log implementation
sgammon Mar 1, 2020
f59f5dc
Add sugar for page context, title, assets
sgammon Mar 1, 2020
6b04186
:rocket: Fix Soy render with injected context
sgammon Mar 1, 2020
71a5dc6
Fix render bugs on homepage
sgammon Mar 1, 2020
b19db30
Remove empty table in README
sgammon Mar 1, 2020
133d216
Feature: Model Layer (#65)
Mar 10, 2020
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
16 changes: 0 additions & 16 deletions .bazelci/presubmit.yml

This file was deleted.

2 changes: 1 addition & 1 deletion .bazelproject
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ workspace_type: java
java_language_level: 11

targets:
//proto/...
//gust/...
//java/...
//js/...
//style/...
Expand Down
99 changes: 13 additions & 86 deletions .bazelrc
Original file line number Diff line number Diff line change
@@ -1,89 +1,16 @@

##
# Base Settings
# Copyright © 2020, The Gust Framework Authors. All rights reserved.
#
# The Gust/Elide framework and tools, and all associated source or object computer code, except where otherwise noted,
# are licensed under the Zero Prosperity license, which is enclosed in this repository, in the file LICENSE.txt. Use of
# this code in object or source form requires and implies consent and agreement to that license in principle and
# practice. Source or object code not listing this header, or unless specified otherwise, remain the property of
# Elide LLC and its suppliers, if any. The intellectual and technical concepts contained herein are proprietary to
# Elide LLC and its suppliers and may be covered by U.S. and Foreign Patents, or patents in process, and are protected
# by trade secret and copyright law. Dissemination of this information, or reproduction of this material, in any form,
# is strictly forbidden except in adherence with assigned license requirements.
##

common --experimental_allow_incremental_repository_updates

build --watchfs
build --symlink_prefix=dist/
build --nolegacy_external_runfiles
build --disk_cache=~/.cache/bazel-disk-cache
build --incompatible_strict_action_env
build --javacopt="-encoding UTF-8"
build --strict_java_deps=strict
build --use_ijars
build --interface_shared_objects
build --java_toolchain=@bazel_tools//tools/jdk:toolchain_java11
build --host_java_toolchain=@bazel_tools//tools/jdk:toolchain_java11
build --workspace_status_command=./tools/bazel_stamp_vars.sh
build --embed_label=alpha
build --define project=bloom-sandbox

run --incompatible_strict_action_env
run --workspace_status_command=./tools/bazel_stamp_vars.sh

build:ci --spawn_strategy=local

build:release --compilation_mode=opt

build:dev --compilation_mode=dbg
build:dev --spawn_strategy=local
build:dev --strategy=J2cl=worker
build:dev --strategy=Closure=worker
build:dev --strategy=TypeScriptCompile=worker
build:dev --experimental_persistent_javac
build:dev --define=jdk=zulu
build:dev --define=ZULUBASE=/Library/Java/JavaVirtualMachines/zulu-12.jdk/Contents/Home
build:dev --javabase=//defs/toolchain/java:java_runtime

query --output=label_kind

# This .bazelrc file contains all of the flags required for the provided
# toolchain with Remote Build Execution.
# Note your WORKSPACE must contain an rbe_autoconfig target with
# name="rbe_default" to use these flags as-is.
build:remote --jobs=5

# Platform flags:
# The toolchain container used for execution is defined in the target indicated
# by "extra_execution_platforms", "host_platform" and "platforms".
# More about platforms: https://docs.bazel.build/versions/master/platforms.html
build:remote --extra_toolchains=@rbe_default//config:cc-toolchain
build:remote --extra_execution_platforms=@rbe_default//config:platform
build:remote --host_platform=@rbe_default//config:platform
build:remote --platforms=@rbe_default//config:platform
build:remote --host_javabase=@rbe_default//java:jdk
build:remote --javabase=@rbe_default//java:jdk
build:remote --host_java_toolchain=@bazel_tools//tools/jdk:toolchain_hostjdk8
build:remote --java_toolchain=@bazel_tools//tools/jdk:toolchain_hostjdk8
build:remote --crosstool_top=@rbe_default//cc:toolchain
build:remote --action_env=BAZEL_DO_NOT_DETECT_CPP_TOOLCHAIN=1
build:remote --spawn_strategy=remote

# Starting with Bazel 0.27.0 strategies do not need to be explicitly
# defined. See https://github.com/bazelbuild/bazel/issues/7480
build:remote --define=EXECUTOR=remote

# Enable remote execution so actions are performed on the remote systems.
build:remote --remote_executor=grpcs://remotebuildexecution.googleapis.com

# Enforce stricter environment rules, which eliminates some non-hermetic
# behavior and therefore improves both the remote cache hit rate and the
# correctness and repeatability of the build.
build:remote --incompatible_strict_action_env=true

# Set a higher timeout value, just in case.
build:remote --remote_timeout=3600

# Enable authentication. This will pick up application default credentials by
# default. You can use --google_credentials=some_file.json to use a service
# account credential instead.
build:remote --google_default_credentials=true

test --instrumentation_filter=//...
test --instrument_test_targets
coverage --instrument_test_targets

try-import %workspace%/.bazelrc.user

# load bazelrc from the legacy location
# as recommended in https://github.com/bazelbuild/bazel/issues/6319
import %workspace%/tools/bazel.rc
2 changes: 1 addition & 1 deletion .bazelversion
Original file line number Diff line number Diff line change
@@ -1 +1 @@
2.1.1
2.1.0
20 changes: 20 additions & 0 deletions .buildkite/pipeline.yml
Original file line number Diff line number Diff line change
@@ -1,3 +1,16 @@
##
# Copyright © 2020, The Gust Framework Authors. All rights reserved.
#
# The Gust/Elide framework and tools, and all associated source or object computer code, except where otherwise noted,
# are licensed under the Zero Prosperity license, which is enclosed in this repository, in the file LICENSE.txt. Use of
# this code in object or source form requires and implies consent and agreement to that license in principle and
# practice. Source or object code not listing this header, or unless specified otherwise, remain the property of
# Elide LLC and its suppliers, if any. The intellectual and technical concepts contained herein are proprietary to
# Elide LLC and its suppliers and may be covered by U.S. and Foreign Patents, or patents in process, and are protected
# by trade secret and copyright law. Dissemination of this information, or reproduction of this material, in any form,
# is strictly forbidden except in adherence with assigned license requirements.
##

steps:
- command: "make build CI=yes"
label: ":bazel: Build: Framework"
Expand All @@ -14,6 +27,9 @@ steps:
- command: "make build CI=yes TARGETS='//samples/rest_mvc/java:MicronautMVCSample-native-bin' && make build CI=yes TARGETS='//samples/soy_ssr/src:MicronautSSRSample-native-bin'"
label: ":java: Build: Native Binaries"
depends_on: framework-build
key: native-build
soft_fail:
- exit_status: 2

- wait

Expand All @@ -22,6 +38,9 @@ steps:

- command: "make build samples CI=yes"
label: ":gcloud: Publish: Images"
depends_on: native-build
soft_fail:
- exit_status: 2

- command: "echo 'registry=https://npm.pkg.github.com/sgammon' > .npmrc && npm publish"
label: ":octocat: + :npm: Staging: NPM"
Expand Down Expand Up @@ -53,4 +72,5 @@ steps:

- command: "make release-images CI=yes"
label: ":docker: Release: Docker"
depends_on: native-build
if: build.tag != null
111 changes: 111 additions & 0 deletions .codeclimate.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,111 @@

version: "2"

checks:
argument-count:
config:
threshold: 10

complex-logic:
config:
threshold: 20

file-lines:
config:
threshold: 2000

method-complexity:
config:
threshold: 20

method-count:
config:
threshold: 30

method-lines:
config:
threshold: 100

return-statements:
config:
threshold: 5

plugins:
bandit:
enabled: true

checkstyle:
enabled: true

csslint:
enabled: true

editorconfig:
enabled: true

eslint:
enabled: true

fixme:
enabled: true

gofmt:
enabled: true

golint:
enabled: true

govet:
enabled: true

markdownlint:
enabled: true

nodesecurity:
enabled: true

pep8:
enabled: true

pmd:
enabled: true

radon:
enabled: true

sass-lint:
enabled: true

scss-lint:
enabled: true

sonar-java:
enabled: true

sonar-python:
enabled: true

stylelint:
enabled: true

swiftlint:
enabled: true

tailor:
enabled: false

tslint:
enabled: true

exclude_patterns:
- "config/"
- "dist/"
- "**/node_modules/"
- "**/test/"
- "**/tests/"
- "**/javatests/"
- "**/jstests/"
- "**/vendor/"
- "**/*_test.go"
- "**/*.d.ts"

1 change: 0 additions & 1 deletion .develop/BUILD.bazel

This file was deleted.

1 change: 0 additions & 1 deletion .develop/LICENSES.txt

This file was deleted.

1 change: 0 additions & 1 deletion .develop/Makefile

This file was deleted.

1 change: 0 additions & 1 deletion .develop/WORKSPACE

This file was deleted.

1 change: 0 additions & 1 deletion .develop/bazelrc

This file was deleted.

1 change: 0 additions & 1 deletion .develop/package.json

This file was deleted.

6 changes: 6 additions & 0 deletions .gcloudignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
.git/modules
node_modules/
dist/
build/
vendor/
#!include:.gitignore
1 change: 1 addition & 0 deletions .github/CODEOWNERS
Validating CODEOWNERS rules …
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
*.* @sgammon
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
.develop/
.gradle
build/
node_modules/
Expand Down
6 changes: 6 additions & 0 deletions .gitmodules
Original file line number Diff line number Diff line change
Expand Up @@ -23,3 +23,9 @@
[submodule "api_common"]
path = vendor/google/api-common
url = [email protected]:googleapis/api-common-protos.git
[submodule "safe_html_types"]
path = vendor/google/safe-html-types
url = [email protected]:google/safe-html-types.git
[submodule "bazel_common"]
path = vendor/bazel/common
url = [email protected]:sgammon/bazel-common.git
7 changes: 5 additions & 2 deletions .ijwb/.bazelproject
Original file line number Diff line number Diff line change
Expand Up @@ -2,13 +2,14 @@ import .bazelproject

build_flags:
--config=dev
--define=todolist_release_tag=latest

directories:
defs
external
js
java
proto
gust
tests
jstests
javatests
Expand All @@ -20,10 +21,12 @@ directories:
.develop
.buildkite
-node_modules
-dist
-build

targets:
//samples/...
//proto/...
//gust/...
//java/...
//js/...
//style/...
Expand Down
13 changes: 13 additions & 0 deletions BUILD.bazel
Original file line number Diff line number Diff line change
@@ -1,3 +1,16 @@
##
# Copyright © 2020, The Gust Framework Authors. All rights reserved.
#
# The Gust/Elide framework and tools, and all associated source or object computer code, except where otherwise noted,
# are licensed under the Zero Prosperity license, which is enclosed in this repository, in the file LICENSE.txt. Use of
# this code in object or source form requires and implies consent and agreement to that license in principle and
# practice. Source or object code not listing this header, or unless specified otherwise, remain the property of
# Elide LLC and its suppliers, if any. The intellectual and technical concepts contained herein are proprietary to
# Elide LLC and its suppliers and may be covered by U.S. and Foreign Patents, or patents in process, and are protected
# by trade secret and copyright law. Dissemination of this information, or reproduction of this material, in any form,
# is strictly forbidden except in adherence with assigned license requirements.
##

package(
default_visibility = ["//visibility:public"],
)
Expand Down
Loading