From d03e81c939401d728ae9d5eee33ec88a846ee89b Mon Sep 17 00:00:00 2001 From: Matt DiMeglio Date: Mon, 19 Jan 2026 15:57:21 -0500 Subject: [PATCH] Ver Bump | Web Fixes | Runner Changes --- .github/workflows/api-container.yml | 4 +- .github/workflows/api-deploy-nonprod.yml | 6 +- .github/workflows/api-deploy-prod.yml | 6 +- .github/workflows/web-container.yml | 2 + .github/workflows/web-deploy-nonprod.yml | 187 +++++++++++------------ .github/workflows/web-deploy-prod.yml | 187 +++++++++++------------ api/package.json | 2 +- web/package.json | 2 +- 8 files changed, 199 insertions(+), 197 deletions(-) diff --git a/.github/workflows/api-container.yml b/.github/workflows/api-container.yml index 773d856..82b69ef 100644 --- a/.github/workflows/api-container.yml +++ b/.github/workflows/api-container.yml @@ -18,7 +18,7 @@ on: - api/** jobs: determine-workflow: - runs-on: 'ubuntu-latest' + runs-on: ['self-hosted','pi'] outputs: workflow_type: ${{ steps.workflow.outputs.workflow_type }} workflow_envs: ${{ steps.workflow.outputs.workflow_envs }} @@ -45,6 +45,8 @@ jobs: echo "workflow_envs=$workflow_envs" >> $GITHUB_OUTPUT echo "Running $workflow_type pipeline in environments: $workflow_envs" >> $GITHUB_STEP_SUMMARY + - name: Install jq + run: sudo apt-get update && sudo apt-get install -y jq - name: Extract Version id: version shell: bash diff --git a/.github/workflows/api-deploy-nonprod.yml b/.github/workflows/api-deploy-nonprod.yml index 4270f2f..983aa0d 100644 --- a/.github/workflows/api-deploy-nonprod.yml +++ b/.github/workflows/api-deploy-nonprod.yml @@ -26,7 +26,7 @@ on: COOLIFY_TOKEN: {} jobs: check-inputs: - runs-on: 'ubuntu-latest' + runs-on: ['self-hosted','pi'] environment: ${{ inputs.environments }} steps: - name: Check secrets present @@ -60,7 +60,7 @@ jobs: needs: check-inputs if: needs.check-inputs.result == 'success' && inputs.workflow_type != 'release' environment: ${{ inputs.environments }} - runs-on: 'ubuntu-latest' + runs-on: ['self-hosted','pi'] permissions: contents: read packages: write @@ -83,7 +83,7 @@ jobs: needs: build if: needs.build.result == 'success' && inputs.workflow_type != 'release' environment: ${{ inputs.environments }} - runs-on: 'ubuntu-latest' + runs-on: ['self-hosted','pi'] permissions: contents: read packages: write diff --git a/.github/workflows/api-deploy-prod.yml b/.github/workflows/api-deploy-prod.yml index fc13d6d..53f2bc4 100644 --- a/.github/workflows/api-deploy-prod.yml +++ b/.github/workflows/api-deploy-prod.yml @@ -26,7 +26,7 @@ on: COOLIFY_TOKEN: {} jobs: check-inputs: - runs-on: 'ubuntu-latest' + runs-on: ['self-hosted','pi'] environment: ${{ inputs.environments }} steps: - name: Check secrets present @@ -60,7 +60,7 @@ jobs: needs: check-inputs if: needs.check-inputs.result == 'success' && inputs.workflow_type == 'release' environment: ${{ inputs.environments }} - runs-on: 'ubuntu-latest' + runs-on: ['self-hosted','pi'] permissions: contents: read packages: write @@ -83,7 +83,7 @@ jobs: needs: build if: needs.build.result == 'success' && inputs.workflow_type == 'release' environment: ${{ inputs.environments }} - runs-on: 'ubuntu-latest' + runs-on: ['self-hosted','pi'] permissions: contents: read packages: write diff --git a/.github/workflows/web-container.yml b/.github/workflows/web-container.yml index 001c866..ab910e5 100644 --- a/.github/workflows/web-container.yml +++ b/.github/workflows/web-container.yml @@ -45,6 +45,8 @@ jobs: echo "workflow_envs=$workflow_envs" >> $GITHUB_OUTPUT echo "Running $workflow_type pipeline in environments: $workflow_envs" >> $GITHUB_STEP_SUMMARY + - name: Install jq + run: sudo apt-get update && sudo apt-get install -y jq - name: Extract Version id: version shell: bash diff --git a/.github/workflows/web-deploy-nonprod.yml b/.github/workflows/web-deploy-nonprod.yml index 61fcb6b..f22eaf1 100644 --- a/.github/workflows/web-deploy-nonprod.yml +++ b/.github/workflows/web-deploy-nonprod.yml @@ -1,94 +1,93 @@ -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' - current_version: - type: string - description: Current Version of the package.json. - default: '0.0.0' - secrets: - DOCKERHUB_USER: {} - DOCKERHUB_TOKEN: {} - TEST: {} - COOLIFY_WEBHOOK_WEB: {} - COOLIFY_TOKEN: {} -jobs: - check-inputs: - runs-on: 'ubuntu-latest' - environment: ${{ inputs.environments }} - steps: - - name: Check secrets present - run: | - if [[ -z "${{ secrets.COOLIFY_WEBHOOK_WEB }}" ]]; then - echo "COOLIFY_WEBHOOK_WEB secret is empty or missing" - exit 1 - else - echo "COOLIFY_WEBHOOK_WEB secret is set" - fi - if [[ -z "${{ secrets.COOLIFY_TOKEN }}" ]]; then - echo "COOLIFY_TOKEN secret is empty or missing" - exit 1 - else - echo "COOLIFY_TOKEN secret is set" - fi - if [[ -z "${{ secrets.DOCKERHUB_USER }}" ]]; then - echo "DOCKERHUB_USER secret is empty or missing" - exit 1 - else - echo "DOCKERHUB_USER secret is set" - fi - if [[ -z "${{ secrets.DOCKERHUB_TOKEN }}" ]]; then - echo "DOCKERHUB_TOKEN secret is empty or missing" - exit 1 - else - echo "DOCKERHUB_TOKEN secret is set" - fi - echo "Current Version: ${{inputs.current_version}}" - build: - needs: check-inputs - if: needs.check-inputs.result == 'success' && inputs.workflow_type != 'release' - environment: ${{ inputs.environments }} - 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 ENVIRONMENT=dev - - name: Docker Push Backend - run: docker push john4064/shiftsync:latest_web - deploy: - needs: build - if: needs.build.result == 'success' && inputs.workflow_type != 'release' - environment: ${{ inputs.environments }} - runs-on: 'ubuntu-latest' - permissions: - contents: read - packages: write - steps: - - name: Deploy to Coolify - run: | - curl --request GET '${{ secrets.COOLIFY_WEBHOOK_WEB }}' --header 'Authorization: Bearer ${{ secrets.COOLIFY_TOKEN }}' - +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' + current_version: + type: string + description: Current Version of the package.json. + default: '0.0.0' + secrets: + DOCKERHUB_USER: {} + DOCKERHUB_TOKEN: {} + TEST: {} + COOLIFY_WEBHOOK_WEB: {} + COOLIFY_TOKEN: {} +jobs: + check-inputs: + runs-on: ['self-hosted','pi'] + environment: ${{ inputs.environments }} + steps: + - name: Check secrets present + run: | + if [[ -z "${{ secrets.COOLIFY_WEBHOOK_WEB }}" ]]; then + echo "COOLIFY_WEBHOOK_WEB secret is empty or missing" + exit 1 + else + echo "COOLIFY_WEBHOOK_WEB secret is set" + fi + if [[ -z "${{ secrets.COOLIFY_TOKEN }}" ]]; then + echo "COOLIFY_TOKEN secret is empty or missing" + exit 1 + else + echo "COOLIFY_TOKEN secret is set" + fi + if [[ -z "${{ secrets.DOCKERHUB_USER }}" ]]; then + echo "DOCKERHUB_USER secret is empty or missing" + exit 1 + else + echo "DOCKERHUB_USER secret is set" + fi + if [[ -z "${{ secrets.DOCKERHUB_TOKEN }}" ]]; then + echo "DOCKERHUB_TOKEN secret is empty or missing" + exit 1 + else + echo "DOCKERHUB_TOKEN secret is set" + fi + echo "Current Version: ${{inputs.current_version}}" + build: + needs: check-inputs + if: needs.check-inputs.result == 'success' && inputs.workflow_type != 'release' + environment: ${{ inputs.environments }} + runs-on: ['self-hosted','pi'] + 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 ENVIRONMENT=dev + - name: Docker Push Backend + run: docker push john4064/shiftsync:latest_web + deploy: + needs: build + if: needs.build.result == 'success' && inputs.workflow_type != 'release' + environment: ${{ inputs.environments }} + runs-on: ['self-hosted','pi'] + permissions: + contents: read + packages: write + steps: + - name: Deploy to Coolify + run: | + curl -X GET '${{ secrets.COOLIFY_WEBHOOK_WEB }}' --header 'Authorization: Bearer ${{ secrets.COOLIFY_TOKEN }}' diff --git a/.github/workflows/web-deploy-prod.yml b/.github/workflows/web-deploy-prod.yml index 6c87dcc..af55ba8 100644 --- a/.github/workflows/web-deploy-prod.yml +++ b/.github/workflows/web-deploy-prod.yml @@ -1,94 +1,93 @@ -name: Web Deployment Production -on: - workflow_call: - inputs: - environments: - type: string - description: An optional list of environments to deploy to. - default: 'prod' - workflow_type: - type: string - description: An optional string for workflow types. - default: 'prod' - branch: - type: string - description: An optional string to define which branch to checkout. - default: 'main' - current_version: - type: string - description: Current Version of the package.json. - default: '0.0.0' - secrets: - DOCKERHUB_USER: {} - DOCKERHUB_TOKEN: {} - TEST: {} - COOLIFY_WEBHOOK_WEB: {} - COOLIFY_TOKEN: {} -jobs: - check-inputs: - runs-on: 'ubuntu-latest' - environment: ${{ inputs.environments }} - steps: - - name: Check secrets present - run: | - if [[ -z "${{ secrets.COOLIFY_WEBHOOK_WEB }}" ]]; then - echo "COOLIFY_WEBHOOK_WEB secret is empty or missing" - exit 1 - else - echo "COOLIFY_WEBHOOK_WEB secret is set" - fi - if [[ -z "${{ secrets.COOLIFY_TOKEN }}" ]]; then - echo "COOLIFY_TOKEN secret is empty or missing" - exit 1 - else - echo "COOLIFY_TOKEN secret is set" - fi - if [[ -z "${{ secrets.DOCKERHUB_USER }}" ]]; then - echo "DOCKERHUB_USER secret is empty or missing" - exit 1 - else - echo "DOCKERHUB_USER secret is set" - fi - if [[ -z "${{ secrets.DOCKERHUB_TOKEN }}" ]]; then - echo "DOCKERHUB_TOKEN secret is empty or missing" - exit 1 - else - echo "DOCKERHUB_TOKEN secret is set" - fi - echo "Current Version: ${{inputs.current_version}}" - build: - needs: check-inputs - if: needs.check-inputs.result == 'success' && inputs.workflow_type == 'release' - environment: ${{ inputs.environments }} - 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:prod_web ./web --build-arg ENVIRONMENT=prod - - name: Docker Push Backend - run: docker push john4064/shiftsync:prod_web - deploy: - needs: build - if: needs.build.result == 'success' && inputs.workflow_type == 'release' - environment: ${{ inputs.environments }} - runs-on: 'ubuntu-latest' - permissions: - contents: read - packages: write - steps: - - name: Deploy to Coolify - run: | - curl --request GET '${{ secrets.COOLIFY_WEBHOOK_WEB }}' --header 'Authorization: Bearer ${{ secrets.COOLIFY_TOKEN }}' - +name: Web Deployment Production +on: + workflow_call: + inputs: + environments: + type: string + description: An optional list of environments to deploy to. + default: 'prod' + workflow_type: + type: string + description: An optional string for workflow types. + default: 'prod' + branch: + type: string + description: An optional string to define which branch to checkout. + default: 'main' + current_version: + type: string + description: Current Version of the package.json. + default: '0.0.0' + secrets: + DOCKERHUB_USER: {} + DOCKERHUB_TOKEN: {} + TEST: {} + COOLIFY_WEBHOOK_WEB: {} + COOLIFY_TOKEN: {} +jobs: + check-inputs: + runs-on: ['self-hosted','pi'] + environment: ${{ inputs.environments }} + steps: + - name: Check secrets present + run: | + if [[ -z "${{ secrets.COOLIFY_WEBHOOK_WEB }}" ]]; then + echo "COOLIFY_WEBHOOK_WEB secret is empty or missing" + exit 1 + else + echo "COOLIFY_WEBHOOK_WEB secret is set" + fi + if [[ -z "${{ secrets.COOLIFY_TOKEN }}" ]]; then + echo "COOLIFY_TOKEN secret is empty or missing" + exit 1 + else + echo "COOLIFY_TOKEN secret is set" + fi + if [[ -z "${{ secrets.DOCKERHUB_USER }}" ]]; then + echo "DOCKERHUB_USER secret is empty or missing" + exit 1 + else + echo "DOCKERHUB_USER secret is set" + fi + if [[ -z "${{ secrets.DOCKERHUB_TOKEN }}" ]]; then + echo "DOCKERHUB_TOKEN secret is empty or missing" + exit 1 + else + echo "DOCKERHUB_TOKEN secret is set" + fi + echo "Current Version: ${{inputs.current_version}}" + build: + needs: check-inputs + if: needs.check-inputs.result == 'success' && inputs.workflow_type == 'release' + environment: ${{ inputs.environments }} + runs-on: ['self-hosted','pi'] + 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:prod_web ./web --build-arg ENVIRONMENT=prod + - name: Docker Push Backend + run: docker push john4064/shiftsync:prod_web + deploy: + needs: build + if: needs.build.result == 'success' && inputs.workflow_type == 'release' + environment: ${{ inputs.environments }} + runs-on: ['self-hosted','pi'] + permissions: + contents: read + packages: write + steps: + - name: Deploy to Coolify + run: | + curl -X GET '${{ secrets.COOLIFY_WEBHOOK_WEB }}' --header 'Authorization: Bearer ${{ secrets.COOLIFY_TOKEN }}' diff --git a/api/package.json b/api/package.json index f5932ac..36bb191 100644 --- a/api/package.json +++ b/api/package.json @@ -1,6 +1,6 @@ { "name": "shiftsync-website-api", - "version": "1.0.1", + "version": "1.0.6", "private": true, "type": "module", "scripts": { diff --git a/web/package.json b/web/package.json index acaf7fb..35a294d 100644 --- a/web/package.json +++ b/web/package.json @@ -1,7 +1,7 @@ { "name": "shiftsync-website-web", + "version": "1.0.6", "private": true, - "version": "1.0.5", "type": "module", "scripts": { "local": "vite",