From 7a0281dc78ed6c3203e6957646b4525dfd3080d4 Mon Sep 17 00:00:00 2001 From: Andrew Polk Date: Thu, 21 Nov 2024 14:20:35 -0700 Subject: [PATCH] GHA - reorg action to simplify and fix syntax --- .github/workflows/build-and-deploy.yml | 96 ++++++++++++++------------ 1 file changed, 52 insertions(+), 44 deletions(-) diff --git a/.github/workflows/build-and-deploy.yml b/.github/workflows/build-and-deploy.yml index 1e883ce0..f7053e0b 100644 --- a/.github/workflows/build-and-deploy.yml +++ b/.github/workflows/build-and-deploy.yml @@ -43,51 +43,31 @@ jobs: - name: Run tests run: yarn test:ci - - name: Deploy to S3 - non bloomlibrary.org + - name: Deploy to S3 - alpha.bloomlibrary.org + if: github.ref == 'refs/heads/master' run: | - if [ "${{ github.ref }}" == "refs/heads/master" ]; then - # Deploy to alpha and dev-alpha for master branch - - # aws s3 rm s3://alpha.bloomlibrary.org --recursive - # Copy everything that should be cached for a long time: contents of static directory and bloom-player directory, except bloom-player.htm itself. - # These things are safe to cache because the build inserts a hash into their names. Any update will cause a different file to be referenced. - # aws s3 cp build s3://alpha.bloomlibrary.org --recursive --cache-control max-age=31536000 --exclude "*" --include "static/*" --include "bloom-player/*" --exclude "*.htm" - # Copy everything else, which should not be cached: the root directory files, including index.html, and any htm files, especially bloom-player's - # aws s3 cp build s3://alpha.bloomlibrary.org --recursive --cache-control no-cache --exclude "static/*" --exclude "bloom-player/*" --include "*.htm" - # make this version of the script that helps with managing history on embedded sites - # note that we do not have the cache-defeating hash on this - # aws s3 cp public/embed-bloomlibrary.js s3://share.bloomlibrary.org/alpha-assets/embed-bloomlibrary.js --cache-control no-cache - - aws s3 rm s3://dev-alpha.bloomlibrary.org --recursive - # Copy everything that should be cached for a long time: contents of static directory and bloom-player directory, except bloom-player.htm itself. - # These things are safe to cache because the build inserts a hash into their names. Any update will cause a different file to be referenced. - aws s3 cp build s3://dev-alpha.bloomlibrary.org --recursive --cache-control max-age=31536000 --exclude "*" --include "static/*" --include "bloom-player/*" --exclude "*.htm" - # Copy everything else, which should not be cached: the root directory files, including index.html, and any htm files, especially bloom-player's - aws s3 cp build s3://dev-alpha.bloomlibrary.org --recursive --cache-control no-cache --exclude "static/*" --exclude "bloom-player/*" --include "*.htm" - - elif [ "${{ github.ref }}" == "refs/heads/release" ]; then - # Deploy to dev for release branch - - # aws s3 rm s3://dev.bloomlibrary.org --exclude "*/*" --include "bloom-player/*" --include "static/*" --include "translations/*" --recursive - # Copy everything that should be cached for a long time: contents of static directory and bloom-player directory, except bloom-player.htm itself. - # These things are safe to cache because the build inserts a hash into their names. Any update will cause a different file to be referenced. - # aws s3 cp build s3://dev.bloomlibrary.org --recursive --cache-control max-age=31536000 --exclude "*" --include "static/*" --include "bloom-player/*" --exclude "*.htm" - # Copy everything else, which should not be cached: the root directory files, including index.html, and any htm files, especially bloom-player's - # aws s3 cp build s3://dev.bloomlibrary.org --recursive --cache-control no-cache --exclude "static/*" --exclude "bloom-player/*" --include "*.htm" - - elif [ "${{ github.ref }}" == "refs/heads/embed" ]; then - # Deploy to embed for embed branch + # aws s3 rm s3://alpha.bloomlibrary.org --recursive + # Copy everything that should be cached for a long time: contents of static directory and bloom-player directory, except bloom-player.htm itself. + # These things are safe to cache because the build inserts a hash into their names. Any update will cause a different file to be referenced. + # aws s3 cp build s3://alpha.bloomlibrary.org --recursive --cache-control max-age=31536000 --exclude "*" --include "static/*" --include "bloom-player/*" --exclude "*.htm" + # Copy everything else, which should not be cached: the root directory files, including index.html, and any htm files, especially bloom-player's + # aws s3 cp build s3://alpha.bloomlibrary.org --recursive --cache-control no-cache --exclude "static/*" --exclude "bloom-player/*" --include "*.htm" + # make this version of the script that helps with managing history on embedded sites + # note that we do not have the cache-defeating hash on this + # aws s3 cp public/embed-bloomlibrary.js s3://share.bloomlibrary.org/alpha-assets/embed-bloomlibrary.js --cache-control no-cache + env: + AWS_ACCESS_KEY_ID: ${{ secrets.SIL_LEAD_BLOOM_LIBRARY_DEPLOY_AWS_ACCESS_KEY_ID }} + AWS_SECRET_ACCESS_KEY: ${{ secrets.SIL_LEAD_BLOOM_LIBRARY_DEPLOY_AWS_SECRET_ACCESS_KEY }} - # aws s3 rm s3://embed.bloomlibrary.org --recursive - # Copy everything that should be cached for a long time: contents of static directory and bloom-player directory, except bloom-player.htm itself. - # These things are safe to cache because the build inserts a hash into their names. Any update will cause a different file to be referenced. - # aws s3 cp build s3://embed.bloomlibrary.org --recursive --cache-control max-age=31536000 --exclude "*" --include "static/*" --include "bloom-player/*" --exclude "*.htm" - # Copy everything else, which should not be cached: the root directory files, including index.html, and any htm files, especially bloom-player's - # aws s3 cp build s3://embed.bloomlibrary.org --recursive --cache-control no-cache --exclude "static/*" --exclude "bloom-player/*" --include "*.htm" - # make this version of the script that helps with managing history on embedded sites - # note that we do not have the cache-defeating hash on this - # aws s3 cp public/embed-bloomlibrary.js s3://share.bloomlibrary.org/assets/embed-bloomlibrary.js --cache-control no-cache - fi + - name: Deploy to S3 - dev-alpha.bloomlibrary.org + if: github.ref == 'refs/heads/master' + run: | + aws s3 rm s3://dev-alpha.bloomlibrary.org --recursive + # Copy everything that should be cached for a long time: contents of static directory and bloom-player directory, except bloom-player.htm itself. + # These things are safe to cache because the build inserts a hash into their names. Any update will cause a different file to be referenced. + aws s3 cp build s3://dev-alpha.bloomlibrary.org --recursive --cache-control max-age=31536000 --exclude "*" --include "static/*" --include "bloom-player/*" --exclude "*.htm" + # Copy everything else, which should not be cached: the root directory files, including index.html, and any htm files, especially bloom-player's + aws s3 cp build s3://dev-alpha.bloomlibrary.org --recursive --cache-control no-cache --exclude "static/*" --exclude "bloom-player/*" --include "*.htm" env: AWS_ACCESS_KEY_ID: ${{ secrets.SIL_LEAD_BLOOM_LIBRARY_DEPLOY_AWS_ACCESS_KEY_ID }} AWS_SECRET_ACCESS_KEY: ${{ secrets.SIL_LEAD_BLOOM_LIBRARY_DEPLOY_AWS_SECRET_ACCESS_KEY }} @@ -102,7 +82,35 @@ jobs: # aws s3 cp build s3://bloomlibrary.org --recursive --cache-control max-age=31536000 --exclude "*" --include "static/*" --include "bloom-player/*" --exclude "*.htm" --exclude "robots.txt" # Copy everything else, which should not be cached: the root directory files, including index.html, and any htm files, especially bloom-player's # aws s3 cp build s3://bloomlibrary.org --recursive --cache-control no-cache --exclude "static/*" --exclude "bloom-player/*" --include "*.htm" --exclude "robots.txt" - env: AWS_ACCESS_KEY_ID: ${{ secrets.SIL_BLOOM_UPLOADER_AWS_ACCESS_KEY_ID }} AWS_SECRET_ACCESS_KEY: ${{ secrets.SIL_BLOOM_UPLOADER_AWS_SECRET_ACCESS_KEY }} + + - name: Deploy to S3 - dev.bloomlibrary.org + if: github.ref == 'refs/heads/release' + run: | + # aws s3 rm s3://dev.bloomlibrary.org --exclude "*/*" --include "bloom-player/*" --include "static/*" --include "translations/*" --recursive + # Copy everything that should be cached for a long time: contents of static directory and bloom-player directory, except bloom-player.htm itself. + # These things are safe to cache because the build inserts a hash into their names. Any update will cause a different file to be referenced. + # aws s3 cp build s3://dev.bloomlibrary.org --recursive --cache-control max-age=31536000 --exclude "*" --include "static/*" --include "bloom-player/*" --exclude "*.htm" + # Copy everything else, which should not be cached: the root directory files, including index.html, and any htm files, especially bloom-player's + # aws s3 cp build s3://dev.bloomlibrary.org --recursive --cache-control no-cache --exclude "static/*" --exclude "bloom-player/*" --include "*.htm" + env: + AWS_ACCESS_KEY_ID: ${{ secrets.SIL_LEAD_BLOOM_LIBRARY_DEPLOY_AWS_ACCESS_KEY_ID }} + AWS_SECRET_ACCESS_KEY: ${{ secrets.SIL_LEAD_BLOOM_LIBRARY_DEPLOY_AWS_SECRET_ACCESS_KEY }} + + - name: Deploy to S3 - embed.bloomlibrary.org + if: github.ref == 'refs/heads/embed' + run: | + # aws s3 rm s3://embed.bloomlibrary.org --recursive + # Copy everything that should be cached for a long time: contents of static directory and bloom-player directory, except bloom-player.htm itself. + # These things are safe to cache because the build inserts a hash into their names. Any update will cause a different file to be referenced. + # aws s3 cp build s3://embed.bloomlibrary.org --recursive --cache-control max-age=31536000 --exclude "*" --include "static/*" --include "bloom-player/*" --exclude "*.htm" + # Copy everything else, which should not be cached: the root directory files, including index.html, and any htm files, especially bloom-player's + # aws s3 cp build s3://embed.bloomlibrary.org --recursive --cache-control no-cache --exclude "static/*" --exclude "bloom-player/*" --include "*.htm" + # make this version of the script that helps with managing history on embedded sites + # note that we do not have the cache-defeating hash on this + # aws s3 cp public/embed-bloomlibrary.js s3://share.bloomlibrary.org/assets/embed-bloomlibrary.js --cache-control no-cache + env: + AWS_ACCESS_KEY_ID: ${{ secrets.SIL_LEAD_BLOOM_LIBRARY_DEPLOY_AWS_ACCESS_KEY_ID }} + AWS_SECRET_ACCESS_KEY: ${{ secrets.SIL_LEAD_BLOOM_LIBRARY_DEPLOY_AWS_SECRET_ACCESS_KEY }}