addingGreatStuff-1737026992 #175
Workflow file for this run
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
# name: Monorepo pipeline - build and deploy | |
# on: | |
# push: | |
# branches: | |
# - 'main' | |
# - 'release/**' | |
# - 'pre-release/**' | |
# workflow_dispatch: | |
# create: | |
# pull_request: | |
# types: | |
# - opened | |
# - synchronize | |
# - labeled | |
# defaults: | |
# run: | |
# shell: bash | |
# env: | |
# DOCKER_REGISTRY: some-registry | |
# DOCKER_BASE_IMAGE_REGISTRY: some-base-registry | |
# SPINNAKER_URL: www.some-spinnaker-url.com | |
# COMPOSE_HTTP_TIMEOUT: 180 | |
# NX_AFFECTED_ALL: ${{ contains(github.event.pull_request.labels.*.name, 'nx-affected-all') }} | |
# jobs: | |
# pre-checks: | |
# name: Check if job should run | |
# runs-on: ubuntu-latest | |
# env: | |
# CREATE_PATTERNS: ^release/ | |
# PRE_RELEASE_PATTERN: ^pre-release/ | |
# outputs: | |
# NODE_IMAGE_TAG: ${{ steps.git-branch.outputs.NODE_IMAGE_TAG }} | |
# GIT_BRANCH: ${{ steps.git-branch.outputs.GIT_BRANCH }} | |
# GIT_BRANCH_DEPLOY: ${{ steps.git-branch-deploy.outputs.GIT_BRANCH_DEPLOY }} | |
# FEATURE_NAME: ${{ steps.git-branch-deploy.outputs.FEATURE_NAME }} | |
# PRE_CHECK: ${{ steps.should-run.outputs.PRE_CHECK }} | |
# PRE_RELEASE: ${{ steps.should-run.outputs.PRE_RELEASE }} | |
# steps: | |
# - name: Get git branch | |
# id: git-branch | |
# run: | | |
# set -euo pipefail | |
# GIT_BRANCH="${GITHUB_HEAD_REF:-${GITHUB_REF/refs\/heads\//}}" | |
# echo GIT_BRANCH="${GIT_BRANCH}" >> "$GITHUB_OUTPUT" | |
# echo GIT_BRANCH="$GIT_BRANCH" >> "$GITHUB_ENV" | |
# - name: Generate deployment branch name | |
# id: git-branch-deploy | |
# run: | | |
# set -euo pipefail | |
# export GIT_BRANCH_DEPLOY="$GIT_BRANCH" | |
# if [[ "$GITHUB_EVENT_NAME" == "pull_request" ]]; then | |
# if [[ ! ("$GIT_BRANCH_DEPLOY" =~ "feature/") ]]; then | |
# echo "If event is pull request but branch is not prefixed with feature" | |
# GIT_BRANCH_DEPLOY="feature/$GIT_BRANCH_DEPLOY" | |
# fi | |
# echo "Avoid too long resource names" | |
# GIT_BRANCH_DEPLOY="${GIT_BRANCH_DEPLOY:0:50}" | |
# fi | |
# echo GIT_BRANCH_DEPLOY="${GIT_BRANCH_DEPLOY}" | |
# echo GIT_BRANCH_DEPLOY="${GIT_BRANCH_DEPLOY}" >> "$GITHUB_OUTPUT" | |
# echo GIT_BRANCH_DEPLOY="$GIT_BRANCH_DEPLOY" | |
# echo GIT_BRANCH_DEPLOY="$GIT_BRANCH_DEPLOY" >> "$GITHUB_ENV" | |
# echo FEATURE_NAME="$(echo "$GIT_BRANCH_DEPLOY" | cut -d"/" -f2- | tr -cd '[:alnum:]-' | tr '[:upper:]' '[:lower:]' | cut -c1-50)" >> "$GITHUB_OUTPUT" | |
# echo FEATURE_NAME="$(echo "$GIT_BRANCH_DEPLOY" | cut -d"/" -f2- | tr -cd '[:alnum:]-' | tr '[:upper:]' '[:lower:]' | cut -c1-50)" | |
# - name: Check if we want to run workflow | |
# id: should-run | |
# env: | |
# SPINNAKER_WEBHOOK_TOKEN: ${{ secrets.SPINNAKER_WEBHOOK_TOKEN }} | |
# run: | | |
# echo "GITHUB_EVENT_NAME is '$GITHUB_EVENT_NAME'" | |
# echo "PRE_RELEASE=false" >> "$GITHUB_OUTPUT" | |
# if [[ "$GITHUB_EVENT_NAME" == "create" ]]; then | |
# echo "Workflow was created because of branch creation. Branch name is '$GIT_BRANCH'" | |
# for pre_pattern in $(echo "$PRE_RELEASE_PATTERN" | sed "s/,/ /g") | |
# do | |
# echo "Checking branch against pre_release_pattern '$pre_pattern'" | |
# echo "Check if this is a pre-release and if it should generate a feature-deploy" | |
# if [[ "$GIT_BRANCH" =~ $pre_pattern ]]; then | |
# echo "'$GIT_BRANCH' matches 'pre_$pattern', continuing with build" | |
# echo "PRE_CHECK=feature-deploy" | |
# echo "PRE_CHECK=feature-deploy" >> "$GITHUB_OUTPUT" | |
# echo "PRE_RELEASE=true" | |
# echo "PRE_RELEASE=true" >> "$GITHUB_OUTPUT" | |
# exit 0 | |
# fi | |
# done | |
# for pattern in $(echo "$CREATE_PATTERNS" | sed "s/,/ /g") | |
# do | |
# echo "Checking branch against pattern '$pattern'" | |
# if [[ "$GIT_BRANCH" =~ $pattern ]]; then | |
# echo "'$GIT_BRANCH' matches '$pattern', continuing with build" | |
# echo "PRE_CHECK=push" | |
# echo "PRE_CHECK=push" >> "$GITHUB_OUTPUT" | |
# exit 0 | |
# fi | |
# done | |
# echo "No pattern matches '$GIT_BRANCH', exiting." | |
# exit 0 | |
# fi | |
# if [[ "$GITHUB_EVENT_NAME" == "pull_request" ]]; then | |
# if [[ "${{ github.event.action }}" == "labeled" ]]; then | |
# echo "Action is labeled, using label that was applied: '${{ github.event.label.name }}'" | |
# deployFeature="$([[ "${{ github.event.label.name }}" == "deploy-feature" ]] && echo true || echo false )" | |
# echo deployFeature:"$deployFeature" | |
# else | |
# echo "Action is ${{ github.event.action }}, using labels on PR" | |
# deployFeature=${{ contains(github.event.pull_request.labels.*.name, 'deploy-feature') }} | |
# echo deployFeature:"$deployFeature" | |
# fi | |
# if [[ "$deployFeature" == "true" ]]; then | |
# echo "Pull request contains deploy-feature label, continuing with feature deployment" | |
# echo "PRE_CHECK=feature-deploy" | |
# echo "PRE_CHECK=feature-deploy" >> "$GITHUB_OUTPUT" | |
# exit 0 | |
# fi | |
# echo "Pull request does not have deploy-feature label, exiting..." | |
# exit 0 | |
# fi | |
# for pre_pattern in $(echo "$PRE_RELEASE_PATTERN" | sed "s/,/ /g") | |
# do | |
# echo "Checking branch against pre_release_pattern '$pre_pattern'" | |
# echo "Check if this is a pre-release and if it should generate a feature-deploy" | |
# if [[ "$GIT_BRANCH" =~ $pre_pattern ]]; then | |
# echo "'$GIT_BRANCH' matches 'pre_$pattern', continuing with build" | |
# echo "PRE_CHECK=feature-deploy" | |
# echo "PRE_CHECK=feature-deploy" >> "$GITHUB_OUTPUT" | |
# echo "PRE_RELEASE=true" | |
# echo "PRE_RELEASE=true" >> "$GITHUB_OUTPUT" | |
# exit 0 | |
# fi | |
# done | |
# echo "PRE_CHECK=push" | |
# echo "PRE_CHECK=push" >> "$GITHUB_OUTPUT" | |
# # prepare: | |
# # runs-on: ubuntu-latest | |
# # timeout-minutes: 90 | |
# # if: needs.pre-checks.outputs.PRE_CHECK | |
# # needs: | |
# # - pre-checks | |
# # env: | |
# # AFFECTED_ALL: ${{ secrets.AFFECTED_ALL }} | |
# # GIT_BRANCH: ${{ needs.pre-checks.outputs.GIT_BRANCH }} | |
# # SERVERSIDE_FEATURES_ON: '' | |
# # outputs: | |
# # CACHE_KEYS: ${{ steps.get-cache.outputs.keys }} | |
# # TEST_CHUNKS: ${{ steps.test_projects.outputs.CHUNKS }} | |
# # DOCKER_TAG: ${{ steps.docker_tags.outputs.DOCKER_TAG }} | |
# # NODE_IMAGE_TAG: ${{ steps.nodejs_image.outputs.NODE_IMAGE_TAG }} | |
# # LAST_GOOD_BUILD_DOCKER_TAG: ${{ steps.git_nx_base.outputs.LAST_GOOD_BUILD_DOCKER_TAG }} | |
# # UNAFFECTED: ${{ steps.unaffected.outputs.UNAFFECTED }} | |
# # BUILD_CHUNKS: ${{ steps.build_map.outputs.BUILD_CHUNKS }} | |
# # IMAGES: ${{ steps.deploy_map.outputs.IMAGES }} | |
# # node-modules-hash: ${{ steps.calculate_node_modules_hash.outputs.node-modules-hash }} | |
# # steps: | |
# # - uses: actions/checkout@v3 | |
# # with: | |
# # fetch-depth: 0 | |
# # - uses: actions/setup-node@v4 | |
# # with: | |
# # node-version-file: 'package.json' | |
# # - name: Setup yarn | |
# # run: corepack enable | |
# # - name: Check node version | |
# # run: | | |
# # set -euo pipefail | |
# # node -v | |
# # ls -l `which node` | |
# # - name: Git refs | |
# # id: git_refs | |
# # run: | | |
# # set -euo pipefail | |
# # if [[ -n "$GITHUB_BASE_REF" ]] | |
# # then | |
# # echo "a PR" | |
# # GIT_BASE_BRANCH="$GITHUB_BASE_REF" | |
# # else | |
# # echo "on main" | |
# # GIT_BASE_BRANCH=main | |
# # fi | |
# # echo GIT_BRANCH="$GIT_BRANCH" >> "$GITHUB_ENV" | |
# # echo "Base branch is '${GIT_BASE_BRANCH}'" | |
# # echo GIT_BASE_BRANCH="$GIT_BASE_BRANCH" >> "$GITHUB_ENV" | |
# # echo "Branch is '${GIT_BRANCH}'" | |
# # - name: Checking out relevant branches for a pre-release | |
# # if: needs.pre-checks.outputs.PRE_CHECK && needs.pre-checks.outputs.PRE_RELEASE == 'true' | |
# # run: | | |
# # echo "Feature Name: '$FEATURE_NAME'" | |
# # echo "sha: '$GITHUB_SHA'" | |
# # git checkout main | |
# # git checkout "$GITHUB_SHA" | |
# # - name: Checking out relevant branches for a PR | |
# # if: needs.pre-checks.outputs.PRE_CHECK && needs.pre-checks.outputs.PRE_CHECK == 'feature-deploy' && !(needs.pre-checks.outputs.PRE_RELEASE == 'true') | |
# # run: | | |
# # set -euo pipefail | |
# # git checkout "$GITHUB_HEAD_REF" | |
# # git checkout "$GITHUB_BASE_REF" | |
# # git checkout "$GITHUB_SHA" | |
# # BASE_SHA="$(git merge-base HEAD "$GITHUB_BASE_REF")" | |
# # HEAD_SHA="$(git merge-base HEAD "$GITHUB_HEAD_REF")" | |
# # echo "Current base SHA is '$BASE_SHA' and head SHA is '$HEAD_SHA'" | |
# # echo "{\"base_sha\": \"$BASE_SHA\", \"head_sha\":\"$HEAD_SHA\"}" > event.json | |
# # - name: Checking out relevant branches for a branch build | |
# # if: ${{ !(needs.pre-checks.outputs.PRE_CHECK && needs.pre-checks.outputs.PRE_CHECK == 'feature-deploy') }} | |
# # run: | | |
# # set -euo pipefail | |
# # git checkout main | |
# # git checkout "$GITHUB_SHA" | |
# # - name: Generate nodejs image tag | |
# # id: nodejs_image | |
# # continue-on-error: false | |
# # run: | | |
# # set -euo pipefail | |
# # export NODE_IMAGE_TAG="$(./scripts/ci/get-node-version.mjs)" | |
# # echo "NODE_IMAGE_TAG: '${NODE_IMAGE_TAG}'" | |
# # echo NODE_IMAGE_TAG="${NODE_IMAGE_TAG}" >> "$GITHUB_OUTPUT" | |
# # echo NODE_IMAGE_TAG="${NODE_IMAGE_TAG}" >> "$GITHUB_ENV" | |
# # echo "**NODE_IMAGE_TAG** '${NODE_IMAGE_TAG}'" >> "$GITHUB_STEP_SUMMARY" | |
# # - name: Generate docker image tag | |
# # id: docker_tags | |
# # run: | | |
# # set -euo pipefail | |
# # export DOCKER_BRANCH_TAG="$(echo "${GIT_BRANCH:0:45}" | tr "/." "-" )" | |
# # SHA="${{ github.event.pull_request.head.sha }}" | |
# # echo "SHA='$SHA' retrieved from event" | |
# # if [[ "$SHA" == "" ]]; then | |
# # SHA="$GITHUB_SHA" | |
# # echo "SHA='$SHA', retrived from action environment" | |
# # fi | |
# # echo "Using SHA='$SHA' as docker tag SHA" | |
# # export DOCKER_TAG="${DOCKER_BRANCH_TAG}_${SHA:0:10}_${GITHUB_RUN_NUMBER}" | |
# # echo "Docker tag will be '${DOCKER_TAG}'" | |
# # echo DOCKER_TAG="${DOCKER_TAG}" >> "$GITHUB_OUTPUT" | |
# # echo DOCKER_TAG="$DOCKER_TAG" >> "$GITHUB_ENV" | |
# # echo "**Monorepo tag:** '${DOCKER_TAG}'" >> "$GITHUB_STEP_SUMMARY" | |
# # - run: | | |
# # echo HEAD="$GITHUB_SHA" >> "$GITHUB_ENV" | |
# # id: git_nx_head | |
# # name: Preparing HEAD tag | |
# # - name: Set Test Everything true | |
# # run: | | |
# # echo "TEST_EVERYTHING=true" >> "$GITHUB_ENV" | |
# # if: github.event_name == 'pull_request' && contains(github.event.pull_request.labels.*.name, 'test everything') | |
# # - name: Set Test Everything false | |
# # run: echo "TEST_EVERYTHING=false" >> "$GITHUB_ENV" | |
# # if: github.event_name != 'pull_request' || !contains(github.event.pull_request.labels.*.name, 'test everything') | |
# # - name: yarn install | |
# # run: yarn install | |
# # - name: Preparing BASE tags | |
# # id: git_nx_base | |
# # env: | |
# # GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
# # HTML_URL: ${{ github.event.pull_request.html_url }} | |
# # run: | | |
# # set -euo pipefail | |
# # if [[ "${{needs.pre-checks.outputs.PRE_CHECK}}" == 'feature-deploy' && "${{needs.pre-checks.outputs.PRE_RELEASE}}" == 'false' ]]; then | |
# # export HEAD_REF="$GITHUB_HEAD_REF" | |
# # export BASE_REF="$GITHUB_BASE_REF" | |
# # export PR_REF="$GITHUB_SHA" | |
# # else | |
# # export HEAD_REF="$GIT_BRANCH" | |
# # export BASE_REF="$GIT_BASE_BRANCH" | |
# # export PR_REF="not used" | |
# # fi | |
# # export WORKFLOW_ID=push | |
# # export SHELL=/usr/bin/bash | |
# # source ./scripts/ci/00_prepare-base-tags.sh $(git merge-base HEAD "$GITHUB_BASE_REF") | |
# # git checkout "$GITHUB_SHA" | |
# # echo "debug2" | |
# # echo BASE="$BASE" >> "$GITHUB_ENV" | |
# # echo LAST_GOOD_BUILD_DOCKER_TAG="${LAST_GOOD_BUILD_DOCKER_TAG}" | |
# # echo LAST_GOOD_BUILD_DOCKER_TAG="${LAST_GOOD_BUILD_DOCKER_TAG}" >> "$GITHUB_OUTPUT" | |
# # - name: set BRANCH env var | |
# # run: | | |
# # echo BRANCH="$GIT_BRANCH" | |
# # echo BRANCH="$GIT_BRANCH" >> "$GITHUB_ENV" | |
# # - name: Prepare test targets | |
# # id: test_projects | |
# # run: | | |
# # set -euo pipefail | |
# # CHUNKS="$(./scripts/ci/generate-chunks.sh test)" | |
# # if [[ "$CHUNKS" != "[]" ]]; then | |
# # echo CHUNKS="{\"projects\":$CHUNKS}" | |
# # echo CHUNKS="{\"projects\":$CHUNKS}" >> "$GITHUB_OUTPUT" | |
# # fi | |
# # - name: Prepare docker build targets | |
# # id: build_map | |
# # run: | | |
# # set -euo pipefail | |
# # CHUNKS="$(./scripts/ci/generate-build-chunks.sh docker-express docker-next docker-static docker-playwright docker-jest)" | |
# # echo "CHUNKS: '$CHUNKS'" | |
# # if [[ "$CHUNKS" != "[]" ]]; then | |
# # echo BUILD_CHUNKS="$CHUNKS" | |
# # echo BUILD_CHUNKS="$CHUNKS" >> "$GITHUB_OUTPUT" | |
# # fi | |
# # - name: Gather unaffected docker images | |
# # id: unaffected | |
# # run: | | |
# # set -euo pipefail | |
# # UNAFFECTED="$(./scripts/ci/list-unaffected.sh docker-next docker-express docker-static docker-playwright docker-jest)" | |
# # echo UNAFFECTED="$UNAFFECTED" >> "$GITHUB_OUTPUT" | |
# # - name: check pre-release | |
# # if: needs.pre-checks.outputs.PRE_RELEASE == 'true' | |
# # run: | | |
# # echo "AFFECTED_ALL=7913-$GIT_BRANCH" | |
# # echo "AFFECTED_ALL=7913-$GIT_BRANCH" >> "$GITHUB_ENV" | |
# # - name: Prepare deployment targets | |
# # id: deploy_map | |
# # if: needs.pre-checks.outputs.PRE_CHECK != 'push' | |
# # run: | | |
# # set -euo pipefail | |
# # export BASE="$(git merge-base HEAD "$GITHUB_BASE_REF")" | |
# # echo $BASE | |
# # CHUNKS="$(./scripts/ci/generate-build-chunks.sh docker-express docker-next docker-static docker-playwright docker-jest)" | |
# # echo "CHUNKS: '$CHUNKS'" | |
# # if [[ "$CHUNKS" != "[]" ]]; then | |
# # echo "IMAGES="$(echo "$CHUNKS" | jq '.[] | fromjson | .projects' -r | tr '\n' ',')"" >> "$GITHUB_OUTPUT" | |
# # fi | |
# # tests: | |
# # needs: | |
# # - prepare | |
# # if: needs.prepare.outputs.TEST_CHUNKS | |
# # runs-on: ubuntu-latest | |
# # env: | |
# # AFFECTED_PROJECTS: ${{ matrix.projects }} | |
# # MAX_JOBS: 1 | |
# # strategy: | |
# # fail-fast: false | |
# # matrix: ${{ fromJson(needs.prepare.outputs.TEST_CHUNKS) }} | |
# # steps: | |
# # - uses: actions/checkout@v3 | |
# # with: | |
# # fetch-depth: 0 | |
# # - uses: actions/setup-node@v4 | |
# # with: | |
# # node-version-file: 'package.json' | |
# # - name: Setup yarn | |
# # run: corepack enable | |
# # docker-build: | |
# # needs: | |
# # - pre-checks | |
# # - prepare | |
# # runs-on: ubuntu-latest | |
# # timeout-minutes: 35 | |
# # if: needs.prepare.outputs.BUILD_CHUNKS | |
# # env: | |
# # GIT_BRANCH: ${{ needs.pre-checks.outputs.GIT_BRANCH}} | |
# # DOCKER_TAG: ${{ needs.prepare.outputs.DOCKER_TAG}} | |
# # NODE_IMAGE_TAG: ${{ needs.prepare.outputs.NODE_IMAGE_TAG}} | |
# # PUBLISH: true | |
# # strategy: | |
# # fail-fast: false | |
# # matrix: | |
# # chunk: ${{ fromJson(needs.prepare.outputs.BUILD_CHUNKS) }} | |
# # steps: | |
# # - name: Gather apps | |
# # id: gather | |
# # run: | | |
# # set -euo pipefail | |
# # AFFECTED_PROJECTS="$(echo '${{ matrix.chunk }}' | jq -r '.projects')" | |
# # DOCKER_TYPE="$(echo '${{ matrix.chunk }}' | jq -r '.docker_type')" | |
# # echo AFFECTED_PROJECTS="$AFFECTED_PROJECTS" >> "$GITHUB_ENV" | |
# # echo DOCKER_TYPE="$DOCKER_TYPE" >> "$GITHUB_ENV" | |
# # continue-on-error: true | |
# # - uses: actions/checkout@v3 | |
# # if: steps.gather.outcome == 'success' | |
# # - uses: actions/setup-node@v4 | |
# # with: | |
# # node-version-file: 'package.json' | |
# # if: steps.gather.outcome == 'success' | |
# # - name: Setup yarn | |
# # run: corepack enable | |
# # if: steps.gather.outcome == 'success' | |
# # - name: Prepare Docker build arguments | |
# # id: dockerargs | |
# # if: steps.gather.outcome == 'success' | |
# # env: | |
# # NODE_IMAGE_TAG: ${{ needs.prepare.outputs.NODE_IMAGE_TAG }} | |
# # GIT_COMMIT_SHA: ${{ github.sha }} | |
# # DOCKER_BASE_IMAGE_REGISTRY: ${{ env.DOCKER_BASE_IMAGE_REGISTRY }} | |
# # run: | | |
# # set -x | |
# # # Strip protocol prefix and .git postfix | |
# # SERVER_URL="${{ github.server_url }}/${{ github.repository }}" | |
# # SERVER_URL="${SERVER_URL#*://}" | |
# # SERVER_URL="${SERVER_URL%.git}" | |
# # build_args=( | |
# # --build-arg="DOCKER_IMAGE_REGISTRY=${DOCKER_BASE_IMAGE_REGISTRY}" | |
# # --build-arg="NODE_IMAGE_TAG=${NODE_IMAGE_TAG}" | |
# # --build-arg="GIT_BRANCH=${GIT_BRANCH}" | |
# # --build-arg="GIT_COMMIT_SHA=${GIT_COMMIT_SHA}" | |
# # --build-arg="GIT_REPOSITORY_URL=${SERVER_URL}" | |
# # ) | |
# # export EXTRA_DOCKER_BUILD_ARGS="${build_args[*]}" | |
# # echo "EXTRA_DOCKER_BUILD_ARGS=${EXTRA_DOCKER_BUILD_ARGS}" >> "${GITHUB_ENV}" | |
# # - name: Building Docker images | |
# # continue-on-error: true | |
# # id: dockerbuild | |
# # if: steps.gather.outcome == 'success' | |
# # env: | |
# # NODE_IMAGE_TAG: ${{ needs.prepare.outputs.NODE_IMAGE_TAG }} | |
# # GIT_COMMIT_SHA: ${{ github.sha }} | |
# # DOCKER_BASE_IMAGE_REGISTRY: ${{ env.DOCKER_BASE_IMAGE_REGISTRY }} | |
# # run: | | |
# # set -x | |
# # echo "Node image tag is: '${NODE_IMAGE_TAG}'" | |
# # echo "Docker build args are: 'EXTRA_DOCKER_BUILD_ARGS'" | |
# # export EXTRA_DOCKER_BUILD_ARGS | |
# # ./scripts/ci/run-in-parallel.sh "90_${DOCKER_TYPE}" | |
# # - name: Building Docker images Retry | |
# # if: steps.gather.outcome == 'success' && steps.dockerbuild.outcome == 'failure' | |
# # env: | |
# # NODE_IMAGE_TAG: ${{ needs.prepare.outputs.NODE_IMAGE_TAG }} | |
# # GIT_COMMIT_SHA: ${{ github.sha }} | |
# # DOCKER_BASE_IMAGE_REGISTRY: ${{ env.DOCKER_BASE_IMAGE_REGISTRY }} | |
# # run: | | |
# # set -x | |
# # echo "Node image tag is: '${NODE_IMAGE_TAG}'" | |
# # echo "Docker build args are: 'EXTRA_DOCKER_BUILD_ARGS'" | |
# # export EXTRA_DOCKER_BUILD_ARGS | |
# # ./scripts/ci/run-in-parallel.sh "90_${DOCKER_TYPE}" | |
# # helm-docker-build: | |
# # needs: | |
# # - prepare | |
# # - pre-checks | |
# # runs-on: ubuntu-latest | |
# # timeout-minutes: 5 | |
# # env: | |
# # FEATURE_NAME: ${{ needs.pre-checks.outputs.FEATURE_NAME }} | |
# # DOCKER_TAG: ${{ needs.prepare.outputs.DOCKER_TAG}} | |
# # GIT_BRANCH: ${{ needs.pre-checks.outputs.GIT_BRANCH }} | |
# # NODE_IMAGE_TAG: ${{ needs.prepare.outputs.NODE_IMAGE_TAG }} | |
# # steps: | |
# # - uses: actions/checkout@v3 | |
# # - name: Docker login | |
# # run: ./scripts/ci/docker-login-ecr.sh | |
# # - name: Docker build image | |
# # working-directory: infra | |
# # run: | | |
# # echo Registry is: ${{env.DOCKER_BASE_IMAGE_REGISTRY}} | |
# # echo Image tag is: ${{env.NODE_IMAGE_TAG}} | |
# # export EXTRA_DOCKER_BUILD_ARGS="--build-arg DOCKER_IMAGE_REGISTRY=${{env.DOCKER_BASE_IMAGE_REGISTRY}} --build-arg NODE_IMAGE_TAG=${{env.NODE_IMAGE_TAG}}" | |
# # ./scripts/build-docker-container.sh "$DOCKER_TAG" | |
# # echo "COMMENT<<EOF" >> "$GITHUB_ENV" | |
# # echo "Affected services are: ${{needs.prepare.outputs.IMAGES}}" >> "$GITHUB_ENV" | |
# # docker run --rm "${DOCKER_REGISTRY}helm-config:$DOCKER_TAG" ingress-comment --images=${{needs.prepare.outputs.IMAGES}} --chart=islandis --feature="$FEATURE_NAME" >> "$GITHUB_ENV" | |
# # echo 'EOF' >> "$GITHUB_ENV" | |
# # env: | |
# # PUBLISH: 'true' | |
# # - name: Retag as latest | |
# # if: ${{ env.GIT_BRANCH == 'main' && env.NX_AFFECTED_ALL != 'true' }} | |
# # env: | |
# # UNAFFECTED: helm-config | |
# # LAST_GOOD_BUILD_DOCKER_TAG: ${{ env.DOCKER_TAG }} | |
# # DOCKER_TAG: latest | |
# # run: ./scripts/ci/retag-unaffected.sh "$UNAFFECTED" | |
# # - name: Comment on PR | |
# # if: needs.pre-checks.outputs.PRE_CHECK == 'feature-deploy' && !(needs.pre-checks.outputs.PRE_RELEASE == 'true') | |
# # uses: actions/github-script@v7 | |
# # with: | |
# # github-token: ${{ secrets.GITHUB_TOKEN }} | |
# # script: | | |
# # const updateComment = require('./.github/actions/update-comment.js') | |
# # const { COMMENT } = process.env | |
# # await updateComment({github, context, comment: COMMENT}) | |
# # retag-unaffected: | |
# # runs-on: ubuntu-latest | |
# # timeout-minutes: 5 | |
# # if: ${{ !cancelled() && needs.pre-checks.result == 'success' && needs.prepare.result != 'skipped' }} | |
# # needs: | |
# # - pre-checks | |
# # - docker-build | |
# # - prepare | |
# # env: | |
# # GIT_BRANCH: ${{ needs.pre-checks.outputs.GIT_BRANCH}} | |
# # DOCKER_TAG: ${{ needs.prepare.outputs.DOCKER_TAG}} | |
# # LAST_GOOD_BUILD_DOCKER_TAG: ${{ needs.prepare.outputs.LAST_GOOD_BUILD_DOCKER_TAG}} | |
# # UNAFFECTED: ${{ needs.prepare.outputs.UNAFFECTED}} | |
# # steps: | |
# # - name: Check prepare success | |
# # run: '[[ ${{ needs.prepare.result }} == "success" ]] || exit 1' | |
# # - name: Check docker-build success | |
# # run: '[[ ${{ needs.docker-build.result }} != "failure" ]] || exit 1' | |
# # - uses: actions/checkout@v3 | |
# # - name: Retag unaffected Docker images | |
# # run: ./scripts/ci/retag-unaffected.sh "$UNAFFECTED" | |
# # deploy: | |
# # runs-on: ubuntu-latest | |
# # if: ${{ !cancelled() && needs.retag-unaffected.result == 'success' && needs.helm-docker-build.result != 'failure' }} | |
# # needs: | |
# # - retag-unaffected | |
# # - pre-checks | |
# # - prepare | |
# # - helm-docker-build | |
# # env: | |
# # GIT_BRANCH_DEPLOY: ${{ needs.pre-checks.outputs.GIT_BRANCH_DEPLOY }} | |
# # FEATURE_NAME: ${{ needs.pre-checks.outputs.FEATURE_NAME }} | |
# # DOCKER_TAG: ${{ needs.prepare.outputs.DOCKER_TAG }} | |
# # IMAGES: ${{ needs.prepare.outputs.IMAGES }} | |
# # steps: | |
# # - uses: actions/checkout@v3 | |
# # - name: Trigger Deployment for service | |
# # run: | | |
# # echo "Sending webhook with branch: '$GIT_BRANCH_DEPLOY'" | |
# # curl "$SPINNAKER_URL/webhooks/webhook/islandis" -H "content-type: application/json" --data-binary @- <<BODY | |
# # { | |
# # "token": "$SPINNAKER_WEBHOOK_TOKEN", | |
# # "branch": "$GIT_BRANCH_DEPLOY", | |
# # "parameters": { | |
# # "docker_tag": "$DOCKER_TAG", | |
# # "feature_name": "$FEATURE_NAME", | |
# # "images": "$IMAGES", | |
# # "pull_request_number": "$(echo "$GITHUB_REF" | cut -d'/' -f3)" | |
# # } | |
# # } | |
# # BODY | |
# # - name: Trigger Deployment for IDS-Services | |
# # env: | |
# # DOCKER_TAG: ${{ needs.prepare.outputs.DOCKER_TAG }} | |
# # GIT_BRANCH_DEPLOY: ${{ needs.pre-checks.outputs.GIT_BRANCH_DEPLOY }} | |
# # SPINNAKER_WEBHOOK_TOKEN: verynæstoken | |
# # GH_PRIVATE_REPO_TOKEN: greattoken | |
# # run: | | |
# # set -euo pipefail | |
# # echo "Deploying with identity-server docker tag:" | |
# # echo "Sending webhook with branch: '$GIT_BRANCH_DEPLOY'" | |
# # push-success: | |
# # runs-on: ubuntu-latest | |
# # if: ${{ !cancelled() }} | |
# # needs: | |
# # - pre-checks | |
# # - retag-unaffected | |
# # - deploy | |
# # - tests | |
# # steps: | |
# # - name: Check retag success | |
# # run: '[[ ${{ needs.retag-unaffected.result }} != "failure" ]] || exit 1' | |
# # - name: Check deploy success | |
# # run: '[[ ${{ needs.deploy.result }} != "failure" ]] || exit 1' | |
# # - name: Check tests success | |
# # run: '[[ ${{ needs.tests.result }} != "failure" ]] || exit 1' | |
# # - name: Announce success | |
# # if: needs.pre-checks.outputs.PRE_CHECK | |
# # run: echo "Build is successful" | |
# # - name: Announce skipped | |
# # if: '!needs.pre-checks.outputs.PRE_CHECK' | |
# # run: echo "Build was skipped" | |