Publish website #6350
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Publish website | |
on: | |
schedule: | |
- cron: '0 */6 * * *' | |
push: | |
branches: [ main ] | |
workflow_dispatch: | |
pull_request: | |
types: [ opened, synchronize, reopened ] | |
defaults: | |
run: | |
shell: bash | |
concurrency: | |
group: ${{ github.workflow }}-${{ github.ref }} | |
cancel-in-progress: true | |
jobs: | |
build: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Install Node.js | |
uses: actions/setup-node@v4 | |
with: | |
node-version: '20' | |
- name: Install packages | |
run: npm i | |
- name: Generate Site | |
run: npm run build | |
- name: Store PR id | |
run: | | |
mkdir pr | |
echo ${{ github.event.number }} > ./pr/pr-id.txt | |
- name: Upload PR id as artifact | |
uses: actions/upload-artifact@v4 | |
with: | |
name: pr-id | |
path: pr | |
retention-days: 1 | |
- name: Upload site as artifact | |
uses: actions/upload-artifact@v4 | |
with: | |
name: site | |
path: build/site | |
retention-days: 1 | |
deploy: | |
# Only try and deploy on merged code | |
if: "github.repository == 'quarkiverse/quarkiverse-docs' && github.ref_name == 'main' && (github.event_name == 'push' || github.event_name == 'schedule' || github.event_name == 'workflow_dispatch')" | |
needs: [ build ] | |
permissions: | |
pages: write # to deploy to Pages | |
id-token: write # to verify the deployment originates from an appropriate source | |
runs-on: ubuntu-latest | |
# Deploy to the github-pages environment | |
environment: | |
name: github-pages | |
url: ${{ steps.deployment.outputs.page_url }} | |
steps: | |
- uses: actions/checkout@v4 # not needed for the code, but needed for the git config | |
- name: Download Built site | |
uses: actions/download-artifact@v4 | |
with: | |
name: site | |
path: _site | |
- name: Setup Pages | |
uses: actions/configure-pages@v5 | |
- name: Upload artifact | |
uses: actions/upload-pages-artifact@v3 | |
- name: Deploy to GitHub Pages | |
id: deployment | |
uses: actions/deploy-pages@v4 |