diff --git a/.github/workflows/build-melee.yml b/.github/workflows/build.yml similarity index 67% rename from .github/workflows/build-melee.yml rename to .github/workflows/build.yml index 6ed719e725..4666e1080b 100644 --- a/.github/workflows/build-melee.yml +++ b/.github/workflows/build.yml @@ -1,11 +1,19 @@ -name: build-melee -run-name: Build Melee +name: build +run-name: Build Melee & publish GitHub Pages -on: workflow_call +on: + push: + paths: [ "**" ] + pull_request: env: IMAGE_REPO: doldecomp/melee +permissions: + contents: read + pages: write + id-token: write + jobs: build-make: name: Make @@ -145,3 +153,64 @@ jobs: --user "$(id -u):$(id -g)" \ --volume "$PWD:/input:ro" \ "$REGISTRY/$IMAGE" + + gen-pages: + name: Generate pages + needs: build-ninja + runs-on: ubuntu-latest + env: + REGISTRY: ghcr.io + OUTPUT: ${{github.workspace}}/output + steps: + - name: Get image name + env: + IMAGE_SUFFIX: gen-pages:latest + run: | + echo "IMAGE=$IMAGE_REPO/$IMAGE_SUFFIX" >> $GITHUB_ENV + + - name: Checkout Melee repository + uses: actions/checkout@v3 + + - name: Log into container registry + uses: docker/login-action@v2 + with: + registry: ${{ env.REGISTRY }} + username: ${{ github.actor }} + password: ${{ secrets.GITHUB_TOKEN }} + + - name: Pull generator image + run: docker pull ${{ env.REGISTRY }}/${{ env.IMAGE }} + + - name: Generate pages + run: | + mkdir -p "${{ env.OUTPUT }}" + docker run --rm \ + --user "$(id -u):$(id -g)" \ + --volume "$PWD:/input:ro" \ + --volume "${{ env.OUTPUT }}:/output" \ + ${{ env.REGISTRY }}/${{ env.IMAGE }} + + - name: Set up GitHub Pages + uses: actions/configure-pages@v4 + + - name: Upload GitHub Pages artifact + uses: actions/upload-pages-artifact@v3 + with: + path: ${{ env.OUTPUT }} + + deploy-pages: + concurrency: + group: deploy + cancel-in-progress: false + name: Deploy to GitHub Pages + runs-on: ubuntu-latest + needs: gen-pages + if: github.ref_name == github.event.repository.default_branch + environment: + name: github-pages + url: ${{ steps.deployment.outputs.page_url }} + + steps: + - name: Deploy to GitHub Pages + id: deployment + uses: actions/deploy-pages@v4 diff --git a/.github/workflows/publish-pages.yml b/.github/workflows/publish-pages.yml deleted file mode 100644 index a45879710c..0000000000 --- a/.github/workflows/publish-pages.yml +++ /dev/null @@ -1,81 +0,0 @@ -run-name: Build Melee & publish GitHub Pages -name: publish-pages - -on: - push: - paths: [ "**" ] - pull_request: - -env: - IMAGE_REPO: doldecomp/melee - -permissions: - contents: read - pages: write - id-token: write - -jobs: - build-melee: - name: Build Melee - uses: ./.github/workflows/build-melee.yml - - gen-pages: - name: Generate pages - needs: build-melee - runs-on: ubuntu-latest - env: - REGISTRY: ghcr.io - OUTPUT: ${{github.workspace}}/output - steps: - - name: Get image name - env: - IMAGE_SUFFIX: gen-pages:latest - run: | - echo "IMAGE=$IMAGE_REPO/$IMAGE_SUFFIX" >> $GITHUB_ENV - - - name: Checkout Melee repository - uses: actions/checkout@v3 - - - name: Log into container registry - uses: docker/login-action@v2 - with: - registry: ${{ env.REGISTRY }} - username: ${{ github.actor }} - password: ${{ secrets.GITHUB_TOKEN }} - - - name: Pull generator image - run: docker pull ${{ env.REGISTRY }}/${{ env.IMAGE }} - - - name: Generate pages - run: | - mkdir -p "${{ env.OUTPUT }}" - docker run --rm \ - --user "$(id -u):$(id -g)" \ - --volume "$PWD:/input:ro" \ - --volume "${{ env.OUTPUT }}:/output" \ - ${{ env.REGISTRY }}/${{ env.IMAGE }} - - - name: Set up GitHub Pages - uses: actions/configure-pages@v4 - - - name: Upload GitHub Pages artifact - uses: actions/upload-pages-artifact@v3 - with: - path: ${{ env.OUTPUT }} - - deploy-pages: - concurrency: - group: deploy - cancel-in-progress: false - name: Deploy to GitHub Pages - runs-on: ubuntu-latest - needs: gen-pages - if: github.ref_name == github.event.repository.default_branch - environment: - name: github-pages - url: ${{ steps.deployment.outputs.page_url }} - - steps: - - name: Deploy to GitHub Pages - id: deployment - uses: actions/deploy-pages@v4