name: Web Deployment on: workflow_dispatch: {} pull_request: branches: - main types: - opened - reopened - synchronize - ready_for_review push: branches: - main paths: - web/** jobs: pr-validation: permissions: contents: read pull-requests: write runs-on: ['self-hosted', 'pi'] steps: - uses: TimonVS/pr-labeler-action@v5 with: repo-token: ${{ secrets.GITHUB_TOKEN }} configuration-path: .github/configs/pr-labeler-configuration.yml build: environment: dev needs: pr-validation if: always() && needs.pr-validation.result == 'success' runs-on: 'ubuntu-latest' 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 deploy: environment: dev needs: build if: always() && needs.build.result == 'success' runs-on: 'ubuntu-latest' permissions: contents: read packages: write steps: - name: Deploy to Coolify run: | curl --request GET '${{ secrets.COOLIFY_WEBHOOK }}' --header 'Authorization: Bearer ${{ secrets.COOLIFY_TOKEN }}'