-
Notifications
You must be signed in to change notification settings - Fork 0
GHA structure in WDS
ichengchang edited this page Jul 23, 2024
·
29 revisions
%%{init: {"flowchart": {"defaultRenderer": "elk"}} }%%
graph LR;
pr([on PR])
push([on push])
dispatch([on dispatch])
appcontext["compute-app-context.yml(promise)"]
getappcontext["get-app-context(action)"]
pacts[publish-pacts.yml]
buildtest[build-and-test.yml]
buildint[build-and-integration-test.yml]
docker[publish-docker.yml]
python[release-python-client.yml]
appvers[publish-app-version.yml]
release[release-drafter.yml]
subdep[submit-dependencies.yml]
tagpub[tag-and-publish.yml]
java[publish-java-client.yml]
e2e[run-e2e-tests.yml]
bee["create-bee(action)"]
landing["landing-zone-attach(action)"]
pr-->|to main|appcontext
pr-->|to main, uses|getappcontext
pr-->|all branches|buildint
pr-->|all branches|buildtest
pr-->|all branches|python
push-->|to main|appcontext
push-->|to main, uses|getappcontext
push-->|to main|buildtest
push-->|to main|release
push-->|to main|subdep
dispatch-->|schedule or manual|e2e
dispatch-->|manual|tagpub
getappcontext-->pacts
e2e-->|uses|bee
e2e-->|uses|landing
tagpub-->|calls|python
tagpub-->|calls|java
tagpub-->|calls|docker
tagpub-->|calls|appvers
getappcontext-->buildtest
buildtest-->|calls|docker
Workflow | Jobs |
---|---|
compute-app-context.yml | This is the standardized app versioning workflow. It computes the App Context and uploads the app version metadata as a dotenv file |
get-app-context/actions.yml | Retrieve the App Context from artifact |
build-and-integration-test.yml |
./gradlew integrationTest , upload test reports (only on failure) |
build-and-test.yml |
./gradlew --build-cache --scan test jacocoTestReport , sonar scan, upload test reports (only on failure), calls tag (only on push to main), call publish docker |
publish-app-version.yml | create terra-helmfile PR, set version in dev |
publish-docker.yml | build docker image, tag with new version and/or git hash, push image to GCR and ACR, report version to Sherlock |
publish-java-client.yml | build, push java client to artifactory |
publish-pacts.yml | bumps tag, builds consumer contract tests, publish pacts to pact broker, run can-i-deploy |
release-drafter.yml | updates draft for next release |
release-python-client.yml | builds python client, runs pytest, publish to pypi (only on main) |
run-e2e-tests.yaml | create-bee, attach-landing-zone, run e2e test, destroy-bee, report workflow result |
submit-dependencies.yml | generates and submits dependency graph for dependabot |
tag.yml | bumps tag to new patch version |
tag-and-publish.yml | bumps tag to new minor version, call python client, call java client, call docker image, creates a release, call publish app version |