generated from TBD54566975/tbd-project-template
-
Notifications
You must be signed in to change notification settings - Fork 7
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
1 parent
0df2353
commit 47d9a3b
Showing
23 changed files
with
276 additions
and
641 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -218,62 +218,30 @@ jobs: | |
- uses: actions/checkout@v4 | ||
- uses: cashapp/[email protected] | ||
- run: go-arch-lint check || true | ||
docker-build-controller: | ||
name: Build Controller Docker Image | ||
# if: github.event_name != 'pull_request' || github.event.action == 'enqueued' || contains( github.event.pull_request.labels.*.name, 'run-all') | ||
runs-on: ubuntu-latest | ||
steps: | ||
- uses: actions/checkout@v4 | ||
- uses: cashapp/[email protected] | ||
- uses: ./.github/actions/build-cache | ||
- run: just build-docker controller | ||
docker-build-provisioner: | ||
name: Build Provisioner Docker Image | ||
# if: github.event_name != 'pull_request' || github.event.action == 'enqueued' || contains( github.event.pull_request.labels.*.name, 'run-all') | ||
runs-on: ubuntu-latest | ||
steps: | ||
- uses: actions/checkout@v4 | ||
- uses: cashapp/[email protected] | ||
- uses: ./.github/actions/build-cache | ||
- run: just build-docker provisioner | ||
docker-build-cron: | ||
name: Build Cron Docker Image | ||
# if: github.event_name != 'pull_request' || github.event.action == 'enqueued' || contains( github.event.pull_request.labels.*.name, 'run-all') | ||
runs-on: ubuntu-latest | ||
steps: | ||
- uses: actions/checkout@v4 | ||
- uses: cashapp/[email protected] | ||
- uses: ./.github/actions/build-cache | ||
- run: just build-docker cron | ||
docker-build-http-ingress: | ||
name: Build HTTP Ingress Docker Image | ||
# if: github.event_name != 'pull_request' || github.event.action == 'enqueued' || contains( github.event.pull_request.labels.*.name, 'run-all') | ||
runs-on: ubuntu-latest | ||
steps: | ||
- uses: actions/checkout@v4 | ||
- uses: cashapp/[email protected] | ||
- uses: ./.github/actions/build-cache | ||
- run: just build-docker http-ingress | ||
docker-build-runner: | ||
name: Build Runner Docker Images | ||
# if: github.event_name != 'pull_request' || github.event.action == 'enqueued' || contains( github.event.pull_request.labels.*.name, 'run-all') | ||
docker-shard: | ||
name: Shard Docker Builds | ||
runs-on: ubuntu-latest | ||
outputs: | ||
matrix: ${{ steps.set-matrix.outputs.matrix }} | ||
steps: | ||
- uses: actions/checkout@v4 | ||
- uses: cashapp/[email protected] | ||
- uses: ./.github/actions/build-cache | ||
- name: Build Runner Docker Image | ||
run: just build-docker runner | ||
docker-build-jvm-runners: | ||
name: Build JVM Runner Docker Images | ||
# if: github.event_name != 'pull_request' || github.event.action == 'enqueued' || contains( github.event.pull_request.labels.*.name, 'run-all') | ||
- id: set-matrix | ||
run: echo "matrix=$(just list-docker-images | tr -d '\n' | jq -R -s -c 'split(" ")')" >> "$GITHUB_OUTPUT" | ||
docker-build: | ||
name: Build ${{ matrix.service }} Docker Image | ||
needs: docker-shard | ||
runs-on: ubuntu-latest | ||
strategy: | ||
fail-fast: false | ||
matrix: | ||
service: ${{ fromJson(needs.docker-shard.outputs.matrix) }} | ||
steps: | ||
- uses: actions/checkout@v4 | ||
- uses: cashapp/[email protected] | ||
- uses: ./.github/actions/build-cache | ||
- name: Build JVM Docker Imag | ||
run: just build-docker runner-jvm | ||
- name: Build Docker Image | ||
run: just build-docker ${{ matrix.service }} | ||
console-e2e: | ||
name: Console e2e | ||
# if: github.event_name != 'pull_request' || github.event.action == 'enqueued' || contains( github.event.pull_request.labels.*.name, 'run-all') | ||
|
@@ -422,3 +390,31 @@ jobs: | |
else | ||
echo "Integration tests passed" | ||
fi | ||
docker-success: | ||
name: Docker Success | ||
needs: [docker-build] | ||
runs-on: ubuntu-latest | ||
if: ${{ always() }} | ||
steps: | ||
- name: Check docker builds result | ||
run: | | ||
if [[ "${{ needs.docker-build.result }}" == "failure" ]]; then | ||
echo "Docker builds failed" | ||
exit 1 | ||
else | ||
echo "Docker builds passed" | ||
fi | ||
infrastructure-success: | ||
name: Infrastructure Success | ||
needs: [infrastructure-run] | ||
runs-on: ubuntu-latest | ||
if: ${{ always() }} | ||
steps: | ||
- name: Check infrastructure tests result | ||
run: | | ||
if [[ "${{ needs.infrastructure-run.result }}" == "failure" ]]; then | ||
echo "Infrastructure tests failed" | ||
exit 1 | ||
else | ||
echo "Infrastructure tests passed" | ||
fi |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -4,195 +4,76 @@ on: | |
- "v[0-9]+.[0-9]+.[0-9]+" | ||
name: Automatically Build Release | ||
jobs: | ||
build-runners: | ||
name: Build Runner Docker Images | ||
docker-shard: | ||
name: Shard Docker Builds | ||
runs-on: ubuntu-latest | ||
outputs: | ||
matrix: ${{ steps.set-matrix.outputs.matrix }} | ||
steps: | ||
- name: Checkout code | ||
uses: actions/checkout@v4 | ||
- name: Init Hermit | ||
uses: cashapp/[email protected] | ||
- name: Build Runner | ||
run: | | ||
just build-docker runner | ||
mkdir -p artifacts/ftl-runner | ||
docker save -o artifacts/ftl-runner/ftl-runner.tar ftl0/ftl-runner:latest | ||
- name: Temporarily save Docker image | ||
uses: actions/upload-artifact@v4 | ||
with: | ||
name: docker-runner-artifact | ||
path: artifacts/ftl-runner/ftl-runner.tar | ||
retention-days: 1 | ||
- name: Build JVM Runner | ||
run: | | ||
just build-docker runner-jvm | ||
mkdir -p artifacts/ftl-runner-jvm | ||
docker save -o artifacts/ftl-runner-jvm/ftl-runner-jvm.tar ftl0/ftl-runner-jvm:latest | ||
- name: Temporarily save JVM Docker image | ||
uses: actions/upload-artifact@v4 | ||
with: | ||
name: docker-runner-jvm-artifact | ||
path: artifacts/ftl-runner-jvm/ftl-runner-jvm.tar | ||
retention-days: 1 | ||
build-controller: | ||
name: Build Controller Docker Image | ||
runs-on: ubuntu-latest | ||
steps: | ||
- name: Checkout code | ||
uses: actions/checkout@v4 | ||
- name: Init Hermit | ||
uses: cashapp/[email protected] | ||
- name: Build | ||
run: | | ||
just build-docker controller | ||
mkdir -p artifacts/ftl-controller | ||
docker save -o artifacts/ftl-controller/ftl-controller.tar ftl0/ftl-controller:latest | ||
- name: Temporarily save Docker image | ||
uses: actions/upload-artifact@v4 | ||
with: | ||
name: docker-controller-artifact | ||
path: artifacts/ftl-controller | ||
retention-days: 1 | ||
build-provisioner: | ||
name: Build Provisioner Docker Image | ||
runs-on: ubuntu-latest | ||
steps: | ||
- name: Checkout code | ||
uses: actions/checkout@v4 | ||
- name: Init Hermit | ||
uses: cashapp/[email protected] | ||
- name: Build | ||
run: | | ||
just build-docker provisioner | ||
mkdir -p artifacts/ftl-provisioner | ||
docker save -o artifacts/ftl-provisioner/ftl-provisioner.tar ftl0/ftl-provisioner:latest | ||
- name: Temporarily save Docker image | ||
uses: actions/upload-artifact@v4 | ||
with: | ||
name: docker-provisioner-artifact | ||
path: artifacts/ftl-provisioner | ||
retention-days: 1 | ||
build-cron: | ||
name: Build Cron Docker Image | ||
runs-on: ubuntu-latest | ||
steps: | ||
- name: Checkout code | ||
uses: actions/checkout@v4 | ||
- name: Init Hermit | ||
uses: cashapp/[email protected] | ||
- name: Build | ||
run: | | ||
just build-docker cron | ||
mkdir -p artifacts/ftl-cron | ||
docker save -o artifacts/ftl-cron/ftl-cron.tar ftl0/ftl-cron:latest | ||
- name: Temporarily save Docker image | ||
uses: actions/upload-artifact@v4 | ||
with: | ||
name: docker-cron-artifact | ||
path: artifacts/ftl-cron | ||
retention-days: 1 | ||
build-http-ingress: | ||
name: Build HTTP Ingress Docker Image | ||
- uses: actions/checkout@v4 | ||
- uses: cashapp/[email protected] | ||
- id: set-matrix | ||
run: echo "matrix=$(just list-docker-images | tr -d '\n' | jq -R -s -c 'split(" ")')" >> "$GITHUB_OUTPUT" | ||
build-docker-images: | ||
name: Build ${{ matrix.service }} Docker Image | ||
needs: docker-shard | ||
runs-on: ubuntu-latest | ||
strategy: | ||
matrix: | ||
service: ${{ fromJson(needs.docker-shard.outputs.matrix) }} | ||
steps: | ||
- name: Checkout code | ||
uses: actions/checkout@v4 | ||
- name: Init Hermit | ||
uses: cashapp/[email protected] | ||
- name: Build | ||
- name: Build Docker Image | ||
run: | | ||
just build-docker http-ingress | ||
mkdir -p artifacts/ftl-http-ingress | ||
docker save -o artifacts/ftl-http-ingress/ftl-http-ingress.tar ftl0/ftl-http-ingress:latest | ||
just build-docker ${{ matrix.service }} | ||
mkdir -p artifacts/ftl-${{ matrix.service }} | ||
docker save -o artifacts/ftl-${{ matrix.service }}/ftl-${{ matrix.service }}.tar ftl0/ftl-${{ matrix.service }}:latest | ||
- name: Temporarily save Docker image | ||
uses: actions/upload-artifact@v4 | ||
with: | ||
name: docker-http-ingress-artifact | ||
path: artifacts/ftl-http-ingress | ||
name: docker-${{ matrix.service }}-artifact | ||
path: artifacts/ftl-${{ matrix.service }} | ||
retention-days: 1 | ||
release-docker: | ||
name: Release Assets | ||
name: Release Docker Images | ||
runs-on: ubuntu-latest | ||
permissions: | ||
contents: read | ||
packages: write | ||
needs: [build-runners, build-controller, build-provisioner, build-cron, build-http-ingress] | ||
needs: build-docker-images | ||
steps: | ||
- name: Checkout code | ||
uses: actions/checkout@v4 | ||
with: | ||
fetch-depth: 0 | ||
- name: Init Hermit | ||
uses: cashapp/[email protected] | ||
- name: Retrieve Runner Docker image | ||
uses: actions/download-artifact@v4 | ||
with: | ||
name: docker-runner-artifact | ||
path: artifacts/ftl-runner | ||
- name: Retrieve JVM Runner Docker image | ||
uses: actions/download-artifact@v4 | ||
with: | ||
name: docker-runner-jvm-artifact | ||
path: artifacts/ftl-runner-jvm | ||
- name: Retrieve Controller Docker image | ||
uses: actions/download-artifact@v4 | ||
with: | ||
name: docker-controller-artifact | ||
path: artifacts/ftl-controller | ||
- name: Retrieve Provisioner Docker image | ||
uses: actions/download-artifact@v4 | ||
with: | ||
name: docker-provisioner-artifact | ||
path: artifacts/ftl-provisioner | ||
- name: Retrieve Cron Docker image | ||
- name: Download all artifacts | ||
uses: actions/download-artifact@v4 | ||
with: | ||
name: docker-cron-artifact | ||
path: artifacts/ftl-cron | ||
- name: Retrieve HTTP Ingress Docker image | ||
uses: actions/download-artifact@v4 | ||
with: | ||
name: docker-http-ingress-artifact | ||
path: artifacts/ftl-http-ingress | ||
- name: Load Runner Docker image | ||
run: docker load -i artifacts/ftl-runner/ftl-runner.tar | ||
- name: Load JVM Runner Docker image | ||
run: docker load -i artifacts/ftl-runner-jvm/ftl-runner-jvm.tar | ||
- name: Load Controller Docker image | ||
run: docker load -i artifacts/ftl-controller/ftl-controller.tar | ||
- name: Load Provisioner Docker image | ||
run: docker load -i artifacts/ftl-provisioner/ftl-provisioner.tar | ||
- name: Load Cron Docker image | ||
run: docker load -i artifacts/ftl-cron/ftl-cron.tar | ||
- name: Load HTTP Ingress Docker image | ||
run: docker load -i artifacts/ftl-http-ingress/ftl-http-ingress.tar | ||
- name: Log in to the Container registry | ||
path: artifacts | ||
pattern: docker-*-artifact | ||
- name: Load Docker images | ||
run: | | ||
for tar in artifacts/ftl-*/ftl-*.tar; do | ||
docker load -i "$tar" | ||
done | ||
- name: Log in to Container registry | ||
uses: docker/login-action@v3 | ||
with: | ||
username: ftl0 | ||
password: ${{ secrets.FTL_DOCKER_PUSH_TOKEN }} | ||
- name: Push Docker Images | ||
run: | | ||
version="$(git describe --tags --abbrev=0)" | ||
docker tag ftl0/ftl-runner:latest ftl0/ftl-runner:"$GITHUB_SHA" | ||
docker tag ftl0/ftl-runner:latest ftl0/ftl-runner:"$version" | ||
docker push -a ftl0/ftl-runner | ||
docker tag ftl0/ftl-runner-jvm:latest ftl0/ftl-runner-jvm:"$GITHUB_SHA" | ||
docker tag ftl0/ftl-runner-jvm:latest ftl0/ftl-runner-jvm:"$version" | ||
docker push -a ftl0/ftl-runner-jvm | ||
docker tag ftl0/ftl-controller:latest ftl0/ftl-controller:"$GITHUB_SHA" | ||
docker tag ftl0/ftl-controller:latest ftl0/ftl-controller:"$version" | ||
docker push -a ftl0/ftl-controller | ||
docker tag ftl0/ftl-provisioner:latest ftl0/ftl-provisioner:"$GITHUB_SHA" | ||
docker tag ftl0/ftl-provisioner:latest ftl0/ftl-provisioner:"$version" | ||
docker push -a ftl0/ftl-provisioner | ||
docker tag ftl0/ftl-cron:latest ftl0/ftl-cron:"$GITHUB_SHA" | ||
docker tag ftl0/ftl-cron:latest ftl0/ftl-cron:"$version" | ||
docker push -a ftl0/ftl-cron | ||
docker tag ftl0/ftl-http-ingress:latest ftl0/ftl-http-ingress:"$GITHUB_SHA" | ||
docker tag ftl0/ftl-http-ingress:latest ftl0/ftl-http-ingress:"$version" | ||
docker push -a ftl0/ftl-http-ingress | ||
for image in $(just list-docker-images); do | ||
docker tag "ftl0/ftl-${image}:latest" "ftl0/ftl-${image}:${GITHUB_SHA}" | ||
docker tag "ftl0/ftl-${image}:latest" "ftl0/ftl-${image}:${version}" | ||
docker push -a "ftl0/ftl-${image}" | ||
done | ||
create-go-release: | ||
name: Release Go Binaries | ||
runs-on: ubuntu-latest | ||
|
@@ -305,8 +186,8 @@ jobs: | |
- uses: actions/checkout@v4 | ||
name: "Checkout Charts Repository" | ||
with: | ||
repository: '${{ github.repository_owner }}/ftl-charts' | ||
token: '${{ secrets.FTL_CHARTS_TOKEN }}' | ||
repository: "${{ github.repository_owner }}/ftl-charts" | ||
token: "${{ secrets.FTL_CHARTS_TOKEN }}" | ||
fetch-depth: 0 | ||
- name: Checkout FTL | ||
uses: actions/checkout@v4 | ||
|
@@ -316,7 +197,7 @@ jobs: | |
- name: Init Hermit | ||
uses: cashapp/[email protected] | ||
with: | ||
working-directory: '.ftl' | ||
working-directory: ".ftl" | ||
- name: Configure Git | ||
run: | | ||
git config user.name "$GITHUB_ACTOR" | ||
|
@@ -332,4 +213,4 @@ jobs: | |
cp -r .ftl/charts/ charts/ | ||
git add charts | ||
git commit -a -m "Update charts" | ||
git push | ||
git push |
Oops, something went wrong.