name: Deploy concurrency: group: environment-${{ github.head_ref || github.ref }} on: push: branches: [main] pull_request: branches: [main] jobs: set_vars: runs-on: ubuntu-latest outputs: site_matrix: ${{ steps.set_vars.outputs.site_matrix }} steps: - name: Set site matrix id: set_vars shell: bash run: | if [ -z ${{ vars.SITES }} ]; then echo "site_matrix={site: [\"${{ github.event.repository.name }}\"] }" >> $GITHUB_OUTPUT else echo "site_matrix={site: ${{ vars.SITES }} }" >> $GITHUB_OUTPUT fi deploy: needs: set_vars strategy: matrix: ${{ fromJson(needs.set_vars.outputs.site_matrix) }} name: Deploy runs-on: ubuntu-latest permissions: id-token: write # Needed for auth with Deno Deploy contents: read # Needed to clone the repository steps: - name: Clone repository uses: actions/checkout@v3 - name: Deco Deploy id: decoDeployStep continue-on-error: true uses: deco-cx/deploy@v0 with: site: ${{ matrix.site }} - name: Retry Deco Deploy id: decoDeployRetryStep if: steps.decoDeployStep.outcome == 'failure' uses: deco-cx/deploy@v0 with: site: ${{ matrix.site }}