From 83f7b8ed2298f4d94b14501ec6c3d2bc2f9e8c80 Mon Sep 17 00:00:00 2001 From: Rory de Zoete <33318916+zoete@users.noreply.github.com> Date: Tue, 16 Aug 2022 13:41:51 +0200 Subject: [PATCH] Add missing step output, revert one deploy step (#2285) * Add missing step output, revert one deploy step * Conform to syntax * Update approach * Add missing value * Add missing needs Co-authored-by: Rory de Zoete --- .github/workflows/build_and_test.yml | 66 ++++++++++++++++++---------- 1 file changed, 42 insertions(+), 24 deletions(-) diff --git a/.github/workflows/build_and_test.yml b/.github/workflows/build_and_test.yml index 99859197a1..57214e0bfe 100644 --- a/.github/workflows/build_and_test.yml +++ b/.github/workflows/build_and_test.yml @@ -17,6 +17,24 @@ env: COPT: '-Werror' jobs: + tag: + runs-on: dev + outputs: + build-tag: ${{steps.build-tag.outputs.tag}} + + steps: + - name: Get build tag + run: | + if [[ "$GITHUB_REF_NAME" == "main" ]]; then + echo "::set-output name=tag::$(git rev-list --count HEAD)" + elif [[ "$GITHUB_REF_NAME" == "release" ]]; then + echo "::set-output name=tag::release-$(git rev-list --count HEAD)" + else + echo "GITHUB_REF_NAME (value '$GITHUB_REF_NAME') is not set to either 'main' or 'release' " + echo "::set-output name=tag::$GITHUB_RUN_ID" + fi + id: build-tag + build-neon: runs-on: dev container: 369495373322.dkr.ecr.eu-central-1.amazonaws.com/rust:pinned @@ -470,7 +488,7 @@ jobs: push-docker-hub: runs-on: dev - needs: [ promote-images ] + needs: [ promote-images, tag ] container: golang:1.19-bullseye environment: dev @@ -480,17 +498,17 @@ jobs: go install github.com/google/go-containerregistry/cmd/crane@31786c6cbb82d6ec4fb8eb79cd9387905130534e # v0.11.0 go install github.com/awslabs/amazon-ecr-credential-helper/ecr-login/cli/docker-credential-ecr-login@69c85dc22db6511932bbf119e1a0cc5c90c69a7f # v0.6.0 - - name: Get build tag - run: | - if [[ "$GITHUB_REF_NAME" == "main" ]]; then - echo "::set-output name=tag::$(git rev-list --count HEAD)" - elif [[ "$GITHUB_REF_NAME" == "release" ]]; then - echo "::set-output name=tag::release-$(git rev-list --count HEAD)" - else - echo "GITHUB_REF_NAME (value '$GITHUB_REF_NAME') is not set to either 'main' or 'release' " - echo "::set-output name=tag::$GITHUB_RUN_ID" - fi - id: build-tag +# - name: Get build tag +# run: | +# if [[ "$GITHUB_REF_NAME" == "main" ]]; then +# echo "::set-output name=tag::$(git rev-list --count HEAD)" +# elif [[ "$GITHUB_REF_NAME" == "release" ]]; then +# echo "::set-output name=tag::release-$(git rev-list --count HEAD)" +# else +# echo "GITHUB_REF_NAME (value '$GITHUB_REF_NAME') is not set to either 'main' or 'release' " +# echo "::set-output name=tag::$GITHUB_RUN_ID" +# fi +# id: build-tag - name: Configure ECR login run: | @@ -513,22 +531,22 @@ jobs: crane auth login -u ${{ secrets.NEON_DOCKERHUB_USERNAME }} -p ${{ secrets.NEON_DOCKERHUB_PASSWORD }} index.docker.io - name: Push neon image to Docker Hub - run: crane push neon neondatabase/neon:${{steps.build-tag.outputs.tag}} + run: crane push neon neondatabase/neon:${{needs.tag.outputs.build-tag}} - name: Push compute tools image to Docker Hub - run: crane push compute-tools neondatabase/compute-tools:${{steps.build-tag.outputs.tag}} + run: crane push compute-tools neondatabase/compute-tools:${{needs.tag.outputs.build-tag}} - name: Push compute node image to Docker Hub - run: crane push compute-node neondatabase/compute-node:${{steps.build-tag.outputs.tag}} + run: crane push compute-node neondatabase/compute-node:${{needs.tag.outputs.build-tag}} - name: Add latest tag to images if: | (github.ref_name == 'main' || github.ref_name == 'release') && github.event_name != 'workflow_dispatch' run: | - crane tag neondatabase/neon:${{steps.build-tag.outputs.tag}} latest - crane tag neondatabase/compute-tools:${{steps.build-tag.outputs.tag}} latest - crane tag neondatabase/compute-node:${{steps.build-tag.outputs.tag}} latest + crane tag neondatabase/neon:${{needs.tag.outputs.build-tag}} latest + crane tag neondatabase/compute-tools:${{needs.tag.outputs.build-tag}} latest + crane tag neondatabase/compute-node:${{needs.tag.outputs.build-tag}} latest calculate-deploy-targets: runs-on: [ self-hosted, Linux, k8s-runner ] @@ -553,11 +571,11 @@ jobs: fi deploy: - runs-on: dev - container: 369495373322.dkr.ecr.eu-central-1.amazonaws.com/base:latest + runs-on: [ self-hosted, Linux, k8s-runner ] + #container: 369495373322.dkr.ecr.eu-central-1.amazonaws.com/base:latest # We need both storage **and** compute images for deploy, because control plane picks the compute version based on the storage version. # If it notices a fresh storage it may bump the compute version. And if compute image failed to build it may break things badly - needs: [ push-docker-hub, calculate-deploy-targets ] + needs: [ push-docker-hub, calculate-deploy-targets, tag ] if: | (github.ref_name == 'main' || github.ref_name == 'release') && github.event_name != 'workflow_dispatch' @@ -586,7 +604,7 @@ jobs: - name: Redeploy run: | - export DOCKER_TAG=${{needs.docker-image.outputs.build-tag}} + export DOCKER_TAG=${{needs.tag.outputs.build-tag}} cd "$(pwd)/.github/ansible" if [[ "$GITHUB_REF_NAME" == "main" ]]; then @@ -612,7 +630,7 @@ jobs: runs-on: dev container: 369495373322.dkr.ecr.eu-central-1.amazonaws.com/base:latest # Compute image isn't strictly required for proxy deploy, but let's still wait for it to run all deploy jobs consistently. - needs: [ push-docker-hub, calculate-deploy-targets ] + needs: [ push-docker-hub, calculate-deploy-targets, tag ] if: | (github.ref_name == 'main' || github.ref_name == 'release') && github.event_name != 'workflow_dispatch' @@ -646,6 +664,6 @@ jobs: - name: Re-deploy proxy run: | - DOCKER_TAG=${{needs.docker-image.outputs.build-tag}} + DOCKER_TAG=${{needs.tag.outputs.build-tag}} helm upgrade ${{ matrix.proxy_job }} neondatabase/neon-proxy --namespace default --install -f .github/helm-values/${{ matrix.proxy_config }}.yaml --set image.tag=${DOCKER_TAG} --wait --timeout 15m0s helm upgrade ${{ matrix.proxy_job }}-scram neondatabase/neon-proxy --namespace default --install -f .github/helm-values/${{ matrix.proxy_config }}-scram.yaml --set image.tag=${DOCKER_TAG} --wait --timeout 15m0s \ No newline at end of file