diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml deleted file mode 100644 index 0eae7326..00000000 --- a/.github/workflows/build.yml +++ /dev/null @@ -1,16 +0,0 @@ -name: build -on: - pull_request: - branches: [master] -jobs: - build: - runs-on: ubuntu-latest - name: Build Test - steps: - - name: Checkout 🛎️ - uses: actions/checkout@v2.3.1 - - - name: Install and Build 🔧 # This example project is built using npm and outputs the result to the 'build' folder. Replace with the commands required to build your project, or remove this step entirely if your site is pre-built. - run: | - npm install - npm run build \ No newline at end of file diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml deleted file mode 100644 index 65e4ed40..00000000 --- a/.github/workflows/deploy.yml +++ /dev/null @@ -1,21 +0,0 @@ -name: deploy -on: - push: - branches: [master] -jobs: - build-and-deploy: - runs-on: ubuntu-latest - steps: - - name: Checkout 🛎️ - uses: actions/checkout@v2.3.1 - - - name: Install and Build 🔧 # This example project is built using npm and outputs the result to the 'build' folder. Replace with the commands required to build your project, or remove this step entirely if your site is pre-built. - run: | - npm install - npm run build - - - name: Deploy 🚀 - uses: JamesIves/github-pages-deploy-action@4.1.4 - with: - branch: gh-pages # The branch the action should deploy to. - folder: build # The folder the action should deploy. diff --git a/.github/workflows/publish-docs.yml b/.github/workflows/publish-docs.yml new file mode 100644 index 00000000..2794503e --- /dev/null +++ b/.github/workflows/publish-docs.yml @@ -0,0 +1,98 @@ +name: Publish Docs + +on: + push: + branches: [master] + pull_request: + branches: [master] + workflow_dispatch: + inputs: + pr_number: + description: 'PR number to deploy preview for' + required: true + type: number + run_id: + description: 'Run ID of the build workflow (from the PR checks)' + required: true + type: string + +permissions: + contents: write + pull-requests: write + +jobs: + build: + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@v4 + + - name: Setup Node.js + uses: actions/setup-node@v4 + with: + node-version: 20 + + - name: Install dependencies + run: npm ci + + - name: Build + run: npm run build + + - name: Upload build artifact + uses: actions/upload-artifact@v4 + with: + name: site + path: build/ + + deploy-pr-preview: + if: ${{ github.event_name == 'workflow_dispatch' }} + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@v4 + + - name: Download build artifact + uses: actions/download-artifact@v4 + with: + name: site + path: site + run-id: ${{ inputs.run_id }} + github-token: ${{ secrets.GITHUB_TOKEN }} + + - name: Deploy PR Preview + uses: JamesIves/github-pages-deploy-action@v4 + with: + branch: gh-pages-pr-previews + folder: site + target-folder: pr-${{ inputs.pr_number }} + + - name: Comment Preview URL + uses: marocchino/sticky-pull-request-comment@v2 + with: + recreate: true + number: ${{ inputs.pr_number }} + message: | + 🚀 **Preview Ready!** + Your docs preview for this PR is available here: + + **https://${{ github.repository_owner }}.github.io/${{ github.event.repository.name }}/pr-${{ inputs.pr_number }}/** + + deploy-production: + if: ${{ github.event_name == 'push' && github.ref == 'refs/heads/master' }} + runs-on: ubuntu-latest + needs: build + steps: + - name: Checkout + uses: actions/checkout@v4 + + - name: Download build artifact + uses: actions/download-artifact@v4 + with: + name: site + path: site + + - name: Deploy to GitHub Pages + uses: JamesIves/github-pages-deploy-action@v4 + with: + branch: gh-pages + folder: site