From cc67263bc6b5675dc6b0db470ea4b93711b428e9 Mon Sep 17 00:00:00 2001 From: Jeff Maki Date: Tue, 18 Mar 2025 18:36:22 -0400 Subject: [PATCH 01/10] Parameterization to prepare for deployment to prod (#29) --- tdei_uw.env | 38 ++++++++++++++++++++++++-------------- 1 file changed, 24 insertions(+), 14 deletions(-) diff --git a/tdei_uw.env b/tdei_uw.env index 2b74124..68116c3 100644 --- a/tdei_uw.env +++ b/tdei_uw.env @@ -1,3 +1,13 @@ +# +# Resources for dev and stage are often db-dev, db-stage, while prod resources +# are just "db", not "db-prod". This variable allows us to construct the +# environment-prefixed variable values without putting the "-" in ENV which is +# used elsewhere. +# +# **This variable should therefore be set to empty string on prod ** +# +ENV_NAME_PARAM=-${ENV} + ############################################################################### # Docker ############################################################################### @@ -18,18 +28,18 @@ WS_PLATFORM_PRIVACY_POLICY=https://sidewalks.washington.edu/privacy # Web ############################################################################### -WS_TDEI_FRONTEND_URL=https://portal-${ENV}.tdei.us/ -WS_TDEI_BACKEND_URL=https://portal-api-${ENV}.tdei.us/api/v1/ -WS_TDEI_API_URL=https://api-${ENV}.tdei.us/api/v1/ -WS_TDEI_OIDC_URL=https://account-{$ENV}.tdei.us/ +WS_TDEI_FRONTEND_URL=https://portal${ENV_NAME_PARAM}.tdei.us/ +WS_TDEI_BACKEND_URL=https://portal-api${ENV_NAME_PARAM}.tdei.us/api/v1/ +WS_TDEI_API_URL=https://api${ENV_NAME_PARAM}.tdei.us/api/v1/ +WS_TDEI_OIDC_URL=https://account${ENV_NAME_PARAM}.tdei.us/ WS_TDEI_OIDC_REALM=tdei -WS_FRONTEND_HOST=workspaces-${ENV}.sidewalks.washington.edu -WS_API_HOST=api.workspaces-${ENV}.sidewalks.washington.edu -WS_RAPID_HOST=rapid.workspaces-${ENV}.sidewalks.washington.edu -WS_PATHWAYS_EDITOR_HOST=pathways.workspaces-${ENV}.sidewalks.washington.edu -WS_OSM_HOST=osm.workspaces-${ENV}.sidewalks.washington.edu -WS_TASKS_HOST=tasks.workspaces-${ENV}.sidewalks.washington.edu +WS_FRONTEND_HOST=workspaces${ENV_NAME_PARAM}.sidewalks.washington.edu +WS_API_HOST=api.workspaces${ENV_NAME_PARAM}.sidewalks.washington.edu +WS_RAPID_HOST=rapid.workspaces${ENV_NAME_PARAM}.sidewalks.washington.edu +WS_PATHWAYS_EDITOR_HOST=pathways.workspaces${ENV_NAME_PARAM}.sidewalks.washington.edu +WS_OSM_HOST=osm.workspaces${ENV_NAME_PARAM}.sidewalks.washington.edu +WS_TASKS_HOST=tasks.workspaces${ENV_NAME_PARAM}.sidewalks.washington.edu WS_DEV_PORT=3000 @@ -56,15 +66,15 @@ WS_API_DB_NAME=workspaces WS_OSM_DB_HOST=${WS_POSM_DB_HOST} WS_OSM_DB_PORT=5432 -WS_OSM_DB_USER=workspaces-osm-${ENV} +WS_OSM_DB_USER=workspaces-osm${ENV_NAME_PARAM} WS_OSM_DB_PASS=${WS_OSM_DB_PASS} -WS_OSM_DB_NAME=workspaces-osm-${ENV} +WS_OSM_DB_NAME=workspaces-osm${ENV_NAME_PARAM} WS_TASKS_DB_HOST=${WS_POSM_DB_HOST} WS_TASKS_DB_PORT=5432 -WS_TASKS_DB_USER=workspaces-tasks-${ENV} +WS_TASKS_DB_USER=workspaces-tasks${ENV_NAME_PARAM} WS_TASKS_DB_PASS=${WS_TASKS_DB_PASS} -WS_TASKS_DB_NAME=workspaces-tasks-${ENV} +WS_TASKS_DB_NAME=workspaces-tasks${ENV_NAME_PARAM} ############################################################################### # Mail From 0917f27a5ff1c3864bd0907e9409aef7abfcb6f3 Mon Sep 17 00:00:00 2001 From: Jeff Maki Date: Wed, 19 Mar 2025 20:42:11 -0400 Subject: [PATCH 02/10] Prepare for prod build--workflow definition for prod branch (#30) * Parameterization to prepare for deployment to prod * Prepare prod image build --- .github/workflows/build.yaml | 21 +++++---------------- 1 file changed, 5 insertions(+), 16 deletions(-) diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index e2d8b08..1b50875 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/build.yaml @@ -4,6 +4,7 @@ on: branches: - dev - stage + - prod workflow_dispatch: inputs: @@ -14,7 +15,7 @@ on: options: - '' - '--no-cache' - + jobs: build: runs-on: ubuntu-latest @@ -32,30 +33,17 @@ jobs: username: ${{ vars.DOCKERHUB_USERNAME }} password: ${{ secrets.DOCKERHUB_TOKEN }} -# - name: Get last tag -# run: echo "TAG_LAST=$(git describe --tags --abbrev=0 --always)" >> $GITHUB_ENV - -# - name: "Build Changelog" -# id: build_changelog -# uses: mikepenz/release-changelog-builder-action@v5 -# with: -# toTag: "${{ github.ref }}" -# mode: "HYBRID" -# outputFile: "CHANGELOG.md" - -# - name: Print CHANGELOG.md -# run: cat CHANGELOG.md - - name: Set up Docker Buildx uses: docker/setup-buildx-action@v3 - name: Build and push - run: | + run: | docker compose -f docker-compose.build.yml --env-file tdei_uw.env build --build-arg CODE_VERSION=${CODE_VERSION} ${{github.event.inputs.build_flag}} docker compose -f docker-compose.build.yml --env-file tdei_uw.env push env: ENV: ${{ vars.ENV }} CODE_VERSION: ${{ github.sha }} + ENV_NAME_PARAM: "${{ vars.ENV == 'prod' && '' || -${ENV} }}" # hosts WS_DOCKER_REGISTRY: ${{ vars.WS_DOCKER_REGISTRY }} @@ -74,6 +62,7 @@ jobs: env: ENV: ${{ vars.ENV }} CODE_VERSION: ${{ github.sha }} + ENV_NAME_PARAM: "${{ vars.ENV == 'prod' && '' || -${ENV} }}" # machine to deploy to AZURE_DOCKER_HOST_IP: ${{ vars.AZURE_DOCKER_HOST_IP }} From 08661999fe66a30668c06d312309cae7825b27fe Mon Sep 17 00:00:00 2001 From: Jeff Maki Date: Wed, 19 Mar 2025 20:47:42 -0400 Subject: [PATCH 03/10] Fix variable substitution mistake (#31) * Parameterization to prepare for deployment to prod * Prepare prod image build * Update build.yaml --- .github/workflows/build.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index 1b50875..3136cfc 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/build.yaml @@ -43,7 +43,7 @@ jobs: env: ENV: ${{ vars.ENV }} CODE_VERSION: ${{ github.sha }} - ENV_NAME_PARAM: "${{ vars.ENV == 'prod' && '' || -${ENV} }}" + ENV_NAME_PARAM: "${{ vars.ENV == 'prod' && '' || -${{ENV}} }}" # hosts WS_DOCKER_REGISTRY: ${{ vars.WS_DOCKER_REGISTRY }} @@ -62,7 +62,7 @@ jobs: env: ENV: ${{ vars.ENV }} CODE_VERSION: ${{ github.sha }} - ENV_NAME_PARAM: "${{ vars.ENV == 'prod' && '' || -${ENV} }}" + ENV_NAME_PARAM: "${{ vars.ENV == 'prod' && '' || -${{ENV}} }}" # machine to deploy to AZURE_DOCKER_HOST_IP: ${{ vars.AZURE_DOCKER_HOST_IP }} From 6bf8560c29ed9ff2d1e1654a4dd63f620c323941 Mon Sep 17 00:00:00 2001 From: Jeff Maki Date: Wed, 19 Mar 2025 20:49:43 -0400 Subject: [PATCH 04/10] Update build.yaml --- .github/workflows/build.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index 3136cfc..35e765f 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/build.yaml @@ -43,7 +43,7 @@ jobs: env: ENV: ${{ vars.ENV }} CODE_VERSION: ${{ github.sha }} - ENV_NAME_PARAM: "${{ vars.ENV == 'prod' && '' || -${{ENV}} }}" + ENV_NAME_PARAM: "${{ vars.ENV == 'prod' && '' || '-'${{ENV}} }}" # hosts WS_DOCKER_REGISTRY: ${{ vars.WS_DOCKER_REGISTRY }} @@ -62,7 +62,7 @@ jobs: env: ENV: ${{ vars.ENV }} CODE_VERSION: ${{ github.sha }} - ENV_NAME_PARAM: "${{ vars.ENV == 'prod' && '' || -${{ENV}} }}" + ENV_NAME_PARAM: "${{ vars.ENV == 'prod' && '' || '-'${{ENV}} }}" # machine to deploy to AZURE_DOCKER_HOST_IP: ${{ vars.AZURE_DOCKER_HOST_IP }} From 1816419f09ca952711a537c9bc1a0421fc95e6ac Mon Sep 17 00:00:00 2001 From: Jeff Maki Date: Wed, 19 Mar 2025 20:59:30 -0400 Subject: [PATCH 05/10] Update build.yaml --- .github/workflows/build.yaml | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index 35e765f..c4376c4 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/build.yaml @@ -35,6 +35,16 @@ jobs: - name: Set up Docker Buildx uses: docker/setup-buildx-action@v3 + + - name: Sets env vars for releases + env: + ENV: ${{ vars.ENV }} + run: | + if [[ $ENV == 'prod' ]]; then + echo "ENV_NAME_PARAM=" >> "$GITHUB_ENV" + else + echo "ENV_NAME_PARAM=-$ENV" >> "$GITHUB_ENV" + fi - name: Build and push run: | @@ -43,7 +53,7 @@ jobs: env: ENV: ${{ vars.ENV }} CODE_VERSION: ${{ github.sha }} - ENV_NAME_PARAM: "${{ vars.ENV == 'prod' && '' || '-'${{ENV}} }}" + ENV_NAME_PARAM: ${{ vars.ENV_NAME_PARAM }} # hosts WS_DOCKER_REGISTRY: ${{ vars.WS_DOCKER_REGISTRY }} @@ -62,7 +72,7 @@ jobs: env: ENV: ${{ vars.ENV }} CODE_VERSION: ${{ github.sha }} - ENV_NAME_PARAM: "${{ vars.ENV == 'prod' && '' || '-'${{ENV}} }}" + ENV_NAME_PARAM: ${{ vars.ENV_NAME_PARAM }} # machine to deploy to AZURE_DOCKER_HOST_IP: ${{ vars.AZURE_DOCKER_HOST_IP }} From 9a0946cc75032ea78d901c2423ecfe40450fbfcd Mon Sep 17 00:00:00 2001 From: Jeff Maki Date: Wed, 19 Mar 2025 21:06:23 -0400 Subject: [PATCH 06/10] Update build.yaml --- .github/workflows/build.yaml | 12 ++++-------- 1 file changed, 4 insertions(+), 8 deletions(-) diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index c4376c4..1bbfc9c 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/build.yaml @@ -36,15 +36,11 @@ jobs: - name: Set up Docker Buildx uses: docker/setup-buildx-action@v3 - - name: Sets env vars for releases - env: - ENV: ${{ vars.ENV }} + # see tdei_uw.env for why + - name: Override ENV_NAME_PARAM for prod deployments + if: github.ref_name == 'prod' run: | - if [[ $ENV == 'prod' ]]; then - echo "ENV_NAME_PARAM=" >> "$GITHUB_ENV" - else - echo "ENV_NAME_PARAM=-$ENV" >> "$GITHUB_ENV" - fi + echo "ENV_NAME_PARAM=" >> "$GITHUB_ENV" - name: Build and push run: | From e7083e8e07a660f45e7d7b1b0780632d9663f1eb Mon Sep 17 00:00:00 2001 From: Jeff Maki Date: Wed, 19 Mar 2025 21:24:49 -0400 Subject: [PATCH 07/10] Update build.yaml --- .github/workflows/build.yaml | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index 1bbfc9c..81ae97b 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/build.yaml @@ -41,6 +41,14 @@ jobs: if: github.ref_name == 'prod' run: | echo "ENV_NAME_PARAM=" >> "$GITHUB_ENV" + + # see tdei_uw.env for why + - name: Override ENV_NAME_PARAM for dev or stage deployments + if: github.ref_name != 'prod' + env: + ENV: ${{ vars.ENV }} + run: | + echo "ENV_NAME_PARAM=-${ENV}" >> "$GITHUB_ENV" - name: Build and push run: | From 0020653380bbc0e7b7475b427a0b9db98b30a8bf Mon Sep 17 00:00:00 2001 From: Jeff Maki Date: Wed, 19 Mar 2025 21:32:35 -0400 Subject: [PATCH 08/10] Update build.yaml --- .github/workflows/build.yaml | 12 ++++-------- 1 file changed, 4 insertions(+), 8 deletions(-) diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index 81ae97b..5104801 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/build.yaml @@ -39,16 +39,12 @@ jobs: # see tdei_uw.env for why - name: Override ENV_NAME_PARAM for prod deployments if: github.ref_name == 'prod' - run: | - echo "ENV_NAME_PARAM=" >> "$GITHUB_ENV" - - # see tdei_uw.env for why + run: echo "ENV_NAME_PARAM=" >> "$GITHUB_ENV" - name: Override ENV_NAME_PARAM for dev or stage deployments if: github.ref_name != 'prod' env: ENV: ${{ vars.ENV }} - run: | - echo "ENV_NAME_PARAM=-${ENV}" >> "$GITHUB_ENV" + run: echo "ENV_NAME_PARAM=-${ENV}" >> "$GITHUB_ENV" - name: Build and push run: | @@ -57,7 +53,7 @@ jobs: env: ENV: ${{ vars.ENV }} CODE_VERSION: ${{ github.sha }} - ENV_NAME_PARAM: ${{ vars.ENV_NAME_PARAM }} + ENV_NAME_PARAM: ${{ env.ENV_NAME_PARAM }} # hosts WS_DOCKER_REGISTRY: ${{ vars.WS_DOCKER_REGISTRY }} @@ -76,7 +72,7 @@ jobs: env: ENV: ${{ vars.ENV }} CODE_VERSION: ${{ github.sha }} - ENV_NAME_PARAM: ${{ vars.ENV_NAME_PARAM }} + ENV_NAME_PARAM: ${{ env.ENV_NAME_PARAM }} # machine to deploy to AZURE_DOCKER_HOST_IP: ${{ vars.AZURE_DOCKER_HOST_IP }} From 5b1adc5068608c74d6531fb35c6c9629af81a0cb Mon Sep 17 00:00:00 2001 From: Jeff Maki Date: Wed, 19 Mar 2025 21:43:38 -0400 Subject: [PATCH 09/10] Variable parameterization (#32) * Parameterization to prepare for deployment to prod (#29) * Prepare for prod build--workflow definition for prod branch (#30) * Parameterization to prepare for deployment to prod * Prepare prod image build * Fix variable substitution mistake (#31) * Parameterization to prepare for deployment to prod * Prepare prod image build * Update build.yaml * Update build.yaml * Update build.yaml * Update build.yaml * Update build.yaml * Update build.yaml --- .github/workflows/build.yaml | 31 ++++++++++++++--------------- tdei_uw.env | 38 +++++++++++++++++++++++------------- 2 files changed, 39 insertions(+), 30 deletions(-) diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index e2d8b08..5104801 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/build.yaml @@ -4,6 +4,7 @@ on: branches: - dev - stage + - prod workflow_dispatch: inputs: @@ -14,7 +15,7 @@ on: options: - '' - '--no-cache' - + jobs: build: runs-on: ubuntu-latest @@ -32,30 +33,27 @@ jobs: username: ${{ vars.DOCKERHUB_USERNAME }} password: ${{ secrets.DOCKERHUB_TOKEN }} -# - name: Get last tag -# run: echo "TAG_LAST=$(git describe --tags --abbrev=0 --always)" >> $GITHUB_ENV - -# - name: "Build Changelog" -# id: build_changelog -# uses: mikepenz/release-changelog-builder-action@v5 -# with: -# toTag: "${{ github.ref }}" -# mode: "HYBRID" -# outputFile: "CHANGELOG.md" - -# - name: Print CHANGELOG.md -# run: cat CHANGELOG.md - - name: Set up Docker Buildx uses: docker/setup-buildx-action@v3 + + # see tdei_uw.env for why + - name: Override ENV_NAME_PARAM for prod deployments + if: github.ref_name == 'prod' + run: echo "ENV_NAME_PARAM=" >> "$GITHUB_ENV" + - name: Override ENV_NAME_PARAM for dev or stage deployments + if: github.ref_name != 'prod' + env: + ENV: ${{ vars.ENV }} + run: echo "ENV_NAME_PARAM=-${ENV}" >> "$GITHUB_ENV" - name: Build and push - run: | + run: | docker compose -f docker-compose.build.yml --env-file tdei_uw.env build --build-arg CODE_VERSION=${CODE_VERSION} ${{github.event.inputs.build_flag}} docker compose -f docker-compose.build.yml --env-file tdei_uw.env push env: ENV: ${{ vars.ENV }} CODE_VERSION: ${{ github.sha }} + ENV_NAME_PARAM: ${{ env.ENV_NAME_PARAM }} # hosts WS_DOCKER_REGISTRY: ${{ vars.WS_DOCKER_REGISTRY }} @@ -74,6 +72,7 @@ jobs: env: ENV: ${{ vars.ENV }} CODE_VERSION: ${{ github.sha }} + ENV_NAME_PARAM: ${{ env.ENV_NAME_PARAM }} # machine to deploy to AZURE_DOCKER_HOST_IP: ${{ vars.AZURE_DOCKER_HOST_IP }} diff --git a/tdei_uw.env b/tdei_uw.env index 2b74124..68116c3 100644 --- a/tdei_uw.env +++ b/tdei_uw.env @@ -1,3 +1,13 @@ +# +# Resources for dev and stage are often db-dev, db-stage, while prod resources +# are just "db", not "db-prod". This variable allows us to construct the +# environment-prefixed variable values without putting the "-" in ENV which is +# used elsewhere. +# +# **This variable should therefore be set to empty string on prod ** +# +ENV_NAME_PARAM=-${ENV} + ############################################################################### # Docker ############################################################################### @@ -18,18 +28,18 @@ WS_PLATFORM_PRIVACY_POLICY=https://sidewalks.washington.edu/privacy # Web ############################################################################### -WS_TDEI_FRONTEND_URL=https://portal-${ENV}.tdei.us/ -WS_TDEI_BACKEND_URL=https://portal-api-${ENV}.tdei.us/api/v1/ -WS_TDEI_API_URL=https://api-${ENV}.tdei.us/api/v1/ -WS_TDEI_OIDC_URL=https://account-{$ENV}.tdei.us/ +WS_TDEI_FRONTEND_URL=https://portal${ENV_NAME_PARAM}.tdei.us/ +WS_TDEI_BACKEND_URL=https://portal-api${ENV_NAME_PARAM}.tdei.us/api/v1/ +WS_TDEI_API_URL=https://api${ENV_NAME_PARAM}.tdei.us/api/v1/ +WS_TDEI_OIDC_URL=https://account${ENV_NAME_PARAM}.tdei.us/ WS_TDEI_OIDC_REALM=tdei -WS_FRONTEND_HOST=workspaces-${ENV}.sidewalks.washington.edu -WS_API_HOST=api.workspaces-${ENV}.sidewalks.washington.edu -WS_RAPID_HOST=rapid.workspaces-${ENV}.sidewalks.washington.edu -WS_PATHWAYS_EDITOR_HOST=pathways.workspaces-${ENV}.sidewalks.washington.edu -WS_OSM_HOST=osm.workspaces-${ENV}.sidewalks.washington.edu -WS_TASKS_HOST=tasks.workspaces-${ENV}.sidewalks.washington.edu +WS_FRONTEND_HOST=workspaces${ENV_NAME_PARAM}.sidewalks.washington.edu +WS_API_HOST=api.workspaces${ENV_NAME_PARAM}.sidewalks.washington.edu +WS_RAPID_HOST=rapid.workspaces${ENV_NAME_PARAM}.sidewalks.washington.edu +WS_PATHWAYS_EDITOR_HOST=pathways.workspaces${ENV_NAME_PARAM}.sidewalks.washington.edu +WS_OSM_HOST=osm.workspaces${ENV_NAME_PARAM}.sidewalks.washington.edu +WS_TASKS_HOST=tasks.workspaces${ENV_NAME_PARAM}.sidewalks.washington.edu WS_DEV_PORT=3000 @@ -56,15 +66,15 @@ WS_API_DB_NAME=workspaces WS_OSM_DB_HOST=${WS_POSM_DB_HOST} WS_OSM_DB_PORT=5432 -WS_OSM_DB_USER=workspaces-osm-${ENV} +WS_OSM_DB_USER=workspaces-osm${ENV_NAME_PARAM} WS_OSM_DB_PASS=${WS_OSM_DB_PASS} -WS_OSM_DB_NAME=workspaces-osm-${ENV} +WS_OSM_DB_NAME=workspaces-osm${ENV_NAME_PARAM} WS_TASKS_DB_HOST=${WS_POSM_DB_HOST} WS_TASKS_DB_PORT=5432 -WS_TASKS_DB_USER=workspaces-tasks-${ENV} +WS_TASKS_DB_USER=workspaces-tasks${ENV_NAME_PARAM} WS_TASKS_DB_PASS=${WS_TASKS_DB_PASS} -WS_TASKS_DB_NAME=workspaces-tasks-${ENV} +WS_TASKS_DB_NAME=workspaces-tasks${ENV_NAME_PARAM} ############################################################################### # Mail From cd3122170f7ca268162f865edba8ab0a013af5e3 Mon Sep 17 00:00:00 2001 From: uwjohnbee Date: Tue, 8 Apr 2025 11:14:36 -0400 Subject: [PATCH 10/10] Updating dev to point to 1781 frontend fix --- frontend | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/frontend b/frontend index 275ae3e..1d68a3e 160000 --- a/frontend +++ b/frontend @@ -1 +1 @@ -Subproject commit 275ae3e43b65007b3a54c752480304fe5dfa13c8 +Subproject commit 1d68a3e66ca8de46db2d2f3780f1f7fb072787ab