From cd74aedaacec7ee1305375ff5c9d897dc1107c60 Mon Sep 17 00:00:00 2001 From: Richard Bell Date: Mon, 27 Jun 2022 13:04:12 +0100 Subject: [PATCH 1/6] Add deploy-lambdas reusable workflow --- .github/workflows/deploy-lambdas.yml | 102 +++++++++++++++++++++++++++ 1 file changed, 102 insertions(+) create mode 100644 .github/workflows/deploy-lambdas.yml diff --git a/.github/workflows/deploy-lambdas.yml b/.github/workflows/deploy-lambdas.yml new file mode 100644 index 0000000..6502026 --- /dev/null +++ b/.github/workflows/deploy-lambdas.yml @@ -0,0 +1,102 @@ +name: Deploy lambdas + +on: + workflow_call: + inputs: + ENV: + required: true + type: string + SERVICE: + required: true + type: string + secrets: + SLACK_NOTIFICATION_CI_RUNS: + required: true + ACCESS_TOKEN: + required: true + AWS_ACCESS_KEY_ID: + required: true + AWS_SECRET_ACCESS_KEY: + required: true + AWS_DEFAULT_REGION: + required: true + +jobs: + deploy: + name: Deploy Staging Lambdas + runs-on: ubuntu-latest + container: + image: timbru31/node-alpine-git + env: + ENV: ${{ inputs.ENV }} + SERVICE: ${{ inputs.SERVICE }} + ACCESS_TOKEN: ${{ secrets.ACCESS_TOKEN }} + AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }} + AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }} + AWS_DEFAULT_REGION: ${{secrets.AWS_DEFAULT_REGION}} + SLACK_NOTIFICATION_CI_RUNS: ${{ secrets.SLACK_NOTIFICATION_CI_RUNS }} + steps: + - name: Clone repository + uses: actions/checkout@v2 + - name: Set NodeJS + uses: actions/setup-node@v2 + with: + node-version-file: .nvmrc + cache: npm + - name: 'NPM: Add Config and Authorization' + run: | + rm -f .npmrc + echo "@emritio:registry=https://npm.pkg.github.com/" > .npmrc + echo "//npm.pkg.github.com/:_authToken=${PAT}" >> .npmrc + env: + PAT: ${{ secrets.ACCESS_TOKEN }} + - name: Add git safe directory + run: git config --global --add safe.directory /__w/${PWD##*/}/${PWD##*/} + - name: Semantic Release + uses: cycjimmy/semantic-release-action@v3 + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + with: + semantic_version: 19 + - name: Get previous tag + id: previoustag + uses: 'WyriHaximus/github-action-get-previous-tag@v1' + - name: Set TAG_TO_DEPLOY + env: + VERSION: ${{ steps.previoustag.outputs.tag }} + run: | + echo "TAG_TO_DEPLOY=${VERSION}" >> $GITHUB_ENV + - name: Checkout tag + run: | + git checkout tags/${TAG_TO_DEPLOY} + - name: Configuration + env: + AWS_CLI_VERSION: 1.18.101 + DOCKER_VERSION: 20.10.11-r1 + run: | + apk update + apk add --no-cache curl bash coreutils py3-pip git zip + ln -s /usr/share/zoneinfo/UTC /etc/localtime + apk add --no-cache docker==${DOCKER_VERSION} + pip3 install awscli==${AWS_CLI_VERSION} + - name: Start deployment slack notification + run: | + curl -X POST -H 'Content-type: application/json' \ + --data "{\"text\":\"The $SERVICE service(s) deployment on $ENV environment has begun.\n \"}" \ + $SLACK_NOTIFICATION_CI_RUNS + - name: Build project + env: + NODE_AUTH_TOKEN: ${{ secrets.PACKAGES_ACCESS_TOKEN }} + run: | + rm -rf node_modules + npm ci + npm run build + rm -rf node_modules + npm ci --only=production --ignore-scripts + - name: Zip code + run: | + zip -r event_handler_lambda.zip * + - name: Update event handler lambda + run: | + aws lambda update-function-code --function-name emrit-$ENV-$SERVICE --zip-file fileb://event_handler_lambda.zip --publish + aws lambda wait function-updated --function-name emrit-$ENV-$SERVICE From f7d946138936b9de0d9cd3b27978e80f308c5652 Mon Sep 17 00:00:00 2001 From: Richard Bell Date: Mon, 27 Jun 2022 14:17:39 +0100 Subject: [PATCH 2/6] Prune instead of reinstalling --- .github/workflows/deploy-lambdas.yml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/.github/workflows/deploy-lambdas.yml b/.github/workflows/deploy-lambdas.yml index 6502026..20b3c2b 100644 --- a/.github/workflows/deploy-lambdas.yml +++ b/.github/workflows/deploy-lambdas.yml @@ -91,8 +91,7 @@ jobs: rm -rf node_modules npm ci npm run build - rm -rf node_modules - npm ci --only=production --ignore-scripts + npm prune --production - name: Zip code run: | zip -r event_handler_lambda.zip * From beea88806283bf2284bd7f593f436df4abf51111 Mon Sep 17 00:00:00 2001 From: Richard Bell Date: Mon, 27 Jun 2022 15:35:00 +0100 Subject: [PATCH 3/6] comment out semantic release to test --- .github/workflows/deploy-lambdas.yml | 38 ++++++++++++++-------------- 1 file changed, 19 insertions(+), 19 deletions(-) diff --git a/.github/workflows/deploy-lambdas.yml b/.github/workflows/deploy-lambdas.yml index 20b3c2b..ca7e002 100644 --- a/.github/workflows/deploy-lambdas.yml +++ b/.github/workflows/deploy-lambdas.yml @@ -50,25 +50,25 @@ jobs: echo "//npm.pkg.github.com/:_authToken=${PAT}" >> .npmrc env: PAT: ${{ secrets.ACCESS_TOKEN }} - - name: Add git safe directory - run: git config --global --add safe.directory /__w/${PWD##*/}/${PWD##*/} - - name: Semantic Release - uses: cycjimmy/semantic-release-action@v3 - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - with: - semantic_version: 19 - - name: Get previous tag - id: previoustag - uses: 'WyriHaximus/github-action-get-previous-tag@v1' - - name: Set TAG_TO_DEPLOY - env: - VERSION: ${{ steps.previoustag.outputs.tag }} - run: | - echo "TAG_TO_DEPLOY=${VERSION}" >> $GITHUB_ENV - - name: Checkout tag - run: | - git checkout tags/${TAG_TO_DEPLOY} + # - name: Add git safe directory + # run: git config --global --add safe.directory /__w/${PWD##*/}/${PWD##*/} + # - name: Semantic Release + # uses: cycjimmy/semantic-release-action@v3 + # env: + # GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + # with: + # semantic_version: 19 + # - name: Get previous tag + # id: previoustag + # uses: 'WyriHaximus/github-action-get-previous-tag@v1' + # - name: Set TAG_TO_DEPLOY + # env: + # VERSION: ${{ steps.previoustag.outputs.tag }} + # run: | + # echo "TAG_TO_DEPLOY=${VERSION}" >> $GITHUB_ENV + # - name: Checkout tag + # run: | + # git checkout tags/${TAG_TO_DEPLOY} - name: Configuration env: AWS_CLI_VERSION: 1.18.101 From 62240f6e9f37c191349935791b9f68fc9c7cacda Mon Sep 17 00:00:00 2001 From: Richard Bell Date: Mon, 27 Jun 2022 15:48:21 +0100 Subject: [PATCH 4/6] try old way --- .github/workflows/deploy-lambdas.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/deploy-lambdas.yml b/.github/workflows/deploy-lambdas.yml index ca7e002..7f6d0ab 100644 --- a/.github/workflows/deploy-lambdas.yml +++ b/.github/workflows/deploy-lambdas.yml @@ -91,7 +91,8 @@ jobs: rm -rf node_modules npm ci npm run build - npm prune --production + rm -rf node_modules + npm ci --only=production --ignore-scripts - name: Zip code run: | zip -r event_handler_lambda.zip * From 604ede055ba30240feaed630dbee491d96ea5171 Mon Sep 17 00:00:00 2001 From: Richard Bell Date: Thu, 30 Jun 2022 11:43:33 +0100 Subject: [PATCH 5/6] Uncomment semantic release --- .github/workflows/deploy-lambdas.yml | 38 ++++++++++++++-------------- 1 file changed, 19 insertions(+), 19 deletions(-) diff --git a/.github/workflows/deploy-lambdas.yml b/.github/workflows/deploy-lambdas.yml index 7f6d0ab..6502026 100644 --- a/.github/workflows/deploy-lambdas.yml +++ b/.github/workflows/deploy-lambdas.yml @@ -50,25 +50,25 @@ jobs: echo "//npm.pkg.github.com/:_authToken=${PAT}" >> .npmrc env: PAT: ${{ secrets.ACCESS_TOKEN }} - # - name: Add git safe directory - # run: git config --global --add safe.directory /__w/${PWD##*/}/${PWD##*/} - # - name: Semantic Release - # uses: cycjimmy/semantic-release-action@v3 - # env: - # GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - # with: - # semantic_version: 19 - # - name: Get previous tag - # id: previoustag - # uses: 'WyriHaximus/github-action-get-previous-tag@v1' - # - name: Set TAG_TO_DEPLOY - # env: - # VERSION: ${{ steps.previoustag.outputs.tag }} - # run: | - # echo "TAG_TO_DEPLOY=${VERSION}" >> $GITHUB_ENV - # - name: Checkout tag - # run: | - # git checkout tags/${TAG_TO_DEPLOY} + - name: Add git safe directory + run: git config --global --add safe.directory /__w/${PWD##*/}/${PWD##*/} + - name: Semantic Release + uses: cycjimmy/semantic-release-action@v3 + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + with: + semantic_version: 19 + - name: Get previous tag + id: previoustag + uses: 'WyriHaximus/github-action-get-previous-tag@v1' + - name: Set TAG_TO_DEPLOY + env: + VERSION: ${{ steps.previoustag.outputs.tag }} + run: | + echo "TAG_TO_DEPLOY=${VERSION}" >> $GITHUB_ENV + - name: Checkout tag + run: | + git checkout tags/${TAG_TO_DEPLOY} - name: Configuration env: AWS_CLI_VERSION: 1.18.101 From 833d40ad797d027e6d0287faeefa05d8b7f235c8 Mon Sep 17 00:00:00 2001 From: James Power Date: Fri, 1 Jul 2022 12:07:33 +0100 Subject: [PATCH 6/6] ci: remove semantic release for debugging --- .github/workflows/deploy-lambdas.yml | 38 ++++++++++++++-------------- 1 file changed, 19 insertions(+), 19 deletions(-) diff --git a/.github/workflows/deploy-lambdas.yml b/.github/workflows/deploy-lambdas.yml index 6502026..ed8192e 100644 --- a/.github/workflows/deploy-lambdas.yml +++ b/.github/workflows/deploy-lambdas.yml @@ -50,25 +50,25 @@ jobs: echo "//npm.pkg.github.com/:_authToken=${PAT}" >> .npmrc env: PAT: ${{ secrets.ACCESS_TOKEN }} - - name: Add git safe directory - run: git config --global --add safe.directory /__w/${PWD##*/}/${PWD##*/} - - name: Semantic Release - uses: cycjimmy/semantic-release-action@v3 - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - with: - semantic_version: 19 - - name: Get previous tag - id: previoustag - uses: 'WyriHaximus/github-action-get-previous-tag@v1' - - name: Set TAG_TO_DEPLOY - env: - VERSION: ${{ steps.previoustag.outputs.tag }} - run: | - echo "TAG_TO_DEPLOY=${VERSION}" >> $GITHUB_ENV - - name: Checkout tag - run: | - git checkout tags/${TAG_TO_DEPLOY} +# - name: Add git safe directory +# run: git config --global --add safe.directory /__w/${PWD##*/}/${PWD##*/} +# - name: Semantic Release +# uses: cycjimmy/semantic-release-action@v3 +# env: +# GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} +# with: +# semantic_version: 19 +# - name: Get previous tag +# id: previoustag +# uses: 'WyriHaximus/github-action-get-previous-tag@v1' +# - name: Set TAG_TO_DEPLOY +# env: +# VERSION: ${{ steps.previoustag.outputs.tag }} +# run: | +# echo "TAG_TO_DEPLOY=${VERSION}" >> $GITHUB_ENV +# - name: Checkout tag +# run: | +# git checkout tags/${TAG_TO_DEPLOY} - name: Configuration env: AWS_CLI_VERSION: 1.18.101