--- name: Web validator on: push: branches: [main, dev] pull_request: branches: [main, dev] release: types: [published] workflow_dispatch: inputs: deploy: description: Deploy to github-pages required: false type: boolean concurrency: group: ${{ github.workflow }}-${{ github.ref }} cancel-in-progress: true jobs: test-build: if: ${{ github.event_name != 'release' && !inputs.deploy }} runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - uses: denoland/setup-deno@v2 with: deno-version: v2.x - run: deno task build working-directory: ./web - name: Upload GitHub Pages artifact uses: actions/upload-pages-artifact@v3 with: path: web/dist build: if: ${{ github.event_name == 'release' || inputs.deploy }} runs-on: ubuntu-latest steps: - name: Checkout release/target uses: actions/checkout@v4 with: # Stable is whatever we're releasing. Should generally # be the last release, but can be main. path: stable - name: Checkout dev uses: actions/checkout@v4 with: ref: dev path: dev - uses: denoland/setup-deno@v2 with: deno-version: v2.x - name: Build release/target run: deno task build working-directory: stable/web - name: Build dev run: deno task build working-directory: dev/web - name: Nest dev inside stable run: mv dev/web/dist stable/web/dist/dev - name: Add legacy/ redirect run: | mkdir $DIR echo '<html><meta http-equiv="refresh" content="0; URL='$URL'"></html>' > $DIR/index.html env: DIR: stable/web/dist/legacy URL: https://bids-standard.github.io/legacy-validator/ - name: Upload GitHub Pages artifact uses: actions/upload-pages-artifact@v3 with: path: stable/web/dist deploy: needs: build permissions: contents: read pages: write id-token: write environment: name: github-pages url: ${{ steps.deployment.outputs.page_url }} runs-on: ubuntu-latest steps: - name: Deploy to GitHub Pages id: deployment uses: actions/deploy-pages@v4