From 47dce7bfc8d8b67e16f862b6bd8c1758baf056f1 Mon Sep 17 00:00:00 2001 From: Matt DiMeglio Date: Wed, 11 Jun 2025 14:51:00 -0400 Subject: [PATCH 1/5] Update and rename web-deploy.yml to web-container.yml --- .github/workflows/{web-deploy.yml => web-container.yml} | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) rename .github/workflows/{web-deploy.yml => web-container.yml} (99%) diff --git a/.github/workflows/web-deploy.yml b/.github/workflows/web-container.yml similarity index 99% rename from .github/workflows/web-deploy.yml rename to .github/workflows/web-container.yml index 0fbd8a3..66b1a5c 100644 --- a/.github/workflows/web-deploy.yml +++ b/.github/workflows/web-container.yml @@ -1,4 +1,4 @@ -name: Web Deployment +name: Web Deployment Container on: workflow_dispatch: {} pull_request: From 13b92f69d02168878a86dbe8040f3ed45fc00b77 Mon Sep 17 00:00:00 2001 From: Matt DiMeglio Date: Wed, 11 Jun 2025 15:00:06 -0400 Subject: [PATCH 2/5] Create web-deploy-nonprod.yml --- .github/workflows/web-deploy-nonprod.yml | 53 ++++++++++++++++++++++++ 1 file changed, 53 insertions(+) create mode 100644 .github/workflows/web-deploy-nonprod.yml diff --git a/.github/workflows/web-deploy-nonprod.yml b/.github/workflows/web-deploy-nonprod.yml new file mode 100644 index 0000000..1230789 --- /dev/null +++ b/.github/workflows/web-deploy-nonprod.yml @@ -0,0 +1,53 @@ +name: Web Deployment Non-Production +on: + workflow_call: + inputs: + environments: + type: string + description: An optional list of environments to deploy to. + default: '["dev"]' + workflow_type: + type: string + description: An optional string for workflow types. + default: 'dev' + branch: + type: string + description: An optional string to define which branch to checkout. + default: 'main' +jobs: + build: + if: inputs.workflow_type != 'release' + environment: dev + runs-on: 'ubuntu-latest' + permissions: + contents: read + packages: write + steps: + - name: Branch Checkout + uses: actions/checkout@v4 + with: + ref: ${{ inputs.branch }} + - name: Login to Docker + uses: docker/login-action@v3 + with: + registry: docker.io + username: ${{ secrets.DOCKERHUB_USER }} + password: ${{ secrets.DOCKERHUB_TOKEN }} + - name: Docker Build Backend + run: docker build -f web/Dockerfile -t john4064/shiftsync:latest_web ./web --build-arg TEST=${{ secrets.TEST }} + - name: Docker Push Backend + run: docker push john4064/shiftsync:latest_web + deploy: + needs: build + if: needs.build.result == 'success' && inputs.workflow_type != 'release' + environment: dev + runs-on: 'ubuntu-latest' + permissions: + contents: read + packages: write + steps: + - name: Deploy to Coolify + run: | + echo ${{ needs.determine-workflow.outputs.workflow_type }} + curl --request GET '${{ secrets.COOLIFY_WEBHOOK }}' --header 'Authorization: Bearer ${{ secrets.COOLIFY_TOKEN }}' + From 381913620d2fd2a1b94880ac8615d2a74c12e5f3 Mon Sep 17 00:00:00 2001 From: Matt DiMeglio Date: Wed, 11 Jun 2025 15:07:02 -0400 Subject: [PATCH 3/5] Update web-container.yml --- .github/workflows/web-container.yml | 87 +++++++---------------------- 1 file changed, 20 insertions(+), 67 deletions(-) diff --git a/.github/workflows/web-container.yml b/.github/workflows/web-container.yml index 66b1a5c..d75ad15 100644 --- a/.github/workflows/web-container.yml +++ b/.github/workflows/web-container.yml @@ -39,74 +39,27 @@ jobs: echo "workflow_envs=$workflow_envs" >> $GITHUB_OUTPUT echo "Running $workflow_type pipeline in environments: $workflow_envs" >> $GITHUB_STEP_SUMMARY - nonprod-build: + nonprod-deploy: needs: determine-workflow if: needs.determine-workflow.outputs.workflow_type != 'release' - environment: dev - runs-on: 'ubuntu-latest' - outputs: - workflow_type: needs.determine-workflow.outputs.workflow_type - permissions: - contents: read - packages: write - steps: - - uses: actions/checkout@v4 - - name: Login to Docker - uses: docker/login-action@v3 - with: - registry: docker.io - username: ${{ secrets.DOCKERHUB_USER }} - password: ${{ secrets.DOCKERHUB_TOKEN }} - - name: Docker Build Backend - run: docker build -f web/Dockerfile -t john4064/shiftsync:latest_web ./web --build-arg TEST=${{ secrets.TEST }} - - name: Docker Push Backend - run: docker push john4064/shiftsync:latest_web - nonprod-deploy: - needs: nonprod-build - if: needs.nonprod-build.result == 'success' && needs.nonprod-build.outputs.workflow_type != 'release' - environment: dev - runs-on: 'ubuntu-latest' - permissions: - contents: read - packages: write - steps: - - name: Deploy to Coolify - run: | - echo ${{ needs.determine-workflow.outputs.workflow_type }} - curl --request GET '${{ secrets.COOLIFY_WEBHOOK }}' --header 'Authorization: Bearer ${{ secrets.COOLIFY_TOKEN }}' - prod-build: + strategy: + max-parallel: 1 + matrix: + env: ${{ fromJson(needs.determine-workflow.outputs.workflow_envs) }} + uses: Doble-Technologies/ShiftSync-Website/.github/workflows/web-deploy-nonprod.yml@main + with: + environments: ${{ matrix.env }} + workflow_type: ${{ needs.determine-workflow.outputs.workflow_type }} + branch: ${{ github.ref_name }} + prod-deploy: needs: determine-workflow if: needs.determine-workflow.outputs.workflow_type == 'release' - environment: prod - runs-on: 'ubuntu-latest' - outputs: - workflow_type: needs.determine-workflow.outputs.workflow_type - permissions: - contents: read - packages: write - steps: - - uses: actions/checkout@v4 - - name: Login to Docker - uses: docker/login-action@v3 - with: - registry: docker.io - username: ${{ secrets.DOCKERHUB_USER }} - password: ${{ secrets.DOCKERHUB_TOKEN }} - - name: Docker Build Backend - run: docker build -f web/Dockerfile -t john4064/shiftsync:latest_web ./web --build-arg TEST=${{ secrets.TEST }} - - name: Docker Push Backend - run: docker push john4064/shiftsync:latest_web - prod-deploy: - needs: prod-build - if: needs.prod-build.result == 'success' && needs.prod-build.outputs.workflow_type == 'release' - environment: prod - runs-on: 'ubuntu-latest' - permissions: - contents: read - packages: write - steps: - - name: Deploy to Coolify - run: | - echo ${{ needs.determine-workflow.outputs.workflow_type }} - curl --request GET '${{ secrets.COOLIFY_WEBHOOK }}' --header 'Authorization: Bearer ${{ secrets.COOLIFY_TOKEN }}' - + strategy: + max-parallel: 1 + matrix: + env: ${{ fromJson(needs.determine-workflow.outputs.workflow_envs) }} + uses: Doble-Technologies/ShiftSync-Website/.github/workflows/web-deploy-nonprod.yml@main + with: + environments: ${{ matrix.env }} + workflow_type: ${{ needs.determine-workflow.outputs.workflow_type }} + branch: ${{ github.ref_name }} From 8af7195cac10967a77fbcd14e31c7d768f15ca2d Mon Sep 17 00:00:00 2001 From: Matt DiMeglio Date: Wed, 11 Jun 2025 15:11:29 -0400 Subject: [PATCH 4/5] Update web-deploy-nonprod.yml --- .github/workflows/web-deploy-nonprod.yml | 28 ++++++++++++------------ 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/.github/workflows/web-deploy-nonprod.yml b/.github/workflows/web-deploy-nonprod.yml index 1230789..fd46a34 100644 --- a/.github/workflows/web-deploy-nonprod.yml +++ b/.github/workflows/web-deploy-nonprod.yml @@ -17,7 +17,7 @@ on: jobs: build: if: inputs.workflow_type != 'release' - environment: dev + environment: ${{ input.environments }} runs-on: 'ubuntu-latest' permissions: contents: read @@ -37,17 +37,17 @@ jobs: run: docker build -f web/Dockerfile -t john4064/shiftsync:latest_web ./web --build-arg TEST=${{ secrets.TEST }} - name: Docker Push Backend run: docker push john4064/shiftsync:latest_web - deploy: - needs: build - if: needs.build.result == 'success' && inputs.workflow_type != 'release' - environment: dev - runs-on: 'ubuntu-latest' - permissions: - contents: read - packages: write - steps: - - name: Deploy to Coolify - run: | - echo ${{ needs.determine-workflow.outputs.workflow_type }} - curl --request GET '${{ secrets.COOLIFY_WEBHOOK }}' --header 'Authorization: Bearer ${{ secrets.COOLIFY_TOKEN }}' + # deploy: + # needs: build + # if: needs.build.result == 'success' && inputs.workflow_type != 'release' + # environment: ${{ input.environments }} + # runs-on: 'ubuntu-latest' + # permissions: + # contents: read + # packages: write + # steps: + # - name: Deploy to Coolify + # run: | + # echo ${{ inputs.workflow_type }} + # curl --request GET '${{ secrets.COOLIFY_WEBHOOK }}' --header 'Authorization: Bearer ${{ secrets.COOLIFY_TOKEN }}' From df9b5ff0d420a4c43eb0c67915ed405daeb80873 Mon Sep 17 00:00:00 2001 From: Matt DiMeglio Date: Wed, 11 Jun 2025 15:12:22 -0400 Subject: [PATCH 5/5] Update web-container.yml --- .github/workflows/web-container.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/web-container.yml b/.github/workflows/web-container.yml index d75ad15..fdd5bae 100644 --- a/.github/workflows/web-container.yml +++ b/.github/workflows/web-container.yml @@ -58,7 +58,7 @@ jobs: max-parallel: 1 matrix: env: ${{ fromJson(needs.determine-workflow.outputs.workflow_envs) }} - uses: Doble-Technologies/ShiftSync-Website/.github/workflows/web-deploy-nonprod.yml@main + uses: Doble-Technologies/ShiftSync-Website/.github/workflows/web-deploy-prod.yml@main with: environments: ${{ matrix.env }} workflow_type: ${{ needs.determine-workflow.outputs.workflow_type }}