Publish Website #1218
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: | |
# For some reason, `on: release: ...` didn't work with `nektos/act` | |
push: | |
# Sequence of patterns matched against refs/tags | |
tags: | |
- 'v*' # Push events to matching v*, i.e. v1.0, v20.15.10 | |
workflow_dispatch: | |
inputs: | |
publish_website: | |
description: "Publish guides to website?" | |
type: boolean | |
required: true | |
publish_version: | |
description: "If present, pull this GraphQL-Ruby version to rebuild API docs" | |
required: false | |
type: string | |
permissions: {} | |
jobs: | |
website: | |
permissions: | |
contents: write # for git push (s0/git-publish-subdir-action) | |
name: Publish Website | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout master | |
uses: actions/checkout@v4 | |
- name: Checkout GitHub pages branch | |
uses: actions/checkout@v4 | |
with: | |
path: gh-pages | |
ref: gh-pages | |
- uses: ruby/setup-ruby@v1 | |
with: | |
ruby-version: '3.1' | |
bundler-cache: true | |
- name: Build HTML, reindex | |
env: | |
ALGOLIA_API_KEY: ${{ secrets.ALGOLIA_API_KEY }} | |
run: | | |
bundle exec rake site:fetch_latest site:build_doc site:update_search_index site:clean_html site:build_html | |
- name: Commit changes as last committer | |
run: | | |
git config --global user.name "$(git log --format="%aN" -n 1)" | |
git config --global user.email "$(git log --format="%aE" -n 1)" | |
bundle exec rake site:commit_changes | |
- name: Deploy to GitHub pages via gh-pages branch | |
uses: s0/git-publish-subdir-action@master | |
env: | |
REPO: self | |
BRANCH: gh-pages | |
FOLDER: gh-pages | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
api_docs: | |
needs: website | |
if: ${{ inputs.publish_version || github.action_ref }} | |
permissions: | |
contents: write # for git push (s0/git-publish-subdir-action) | |
name: Publish API Docs | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout release tag | |
uses: actions/checkout@v4 | |
with: | |
ref: ${{ env.GITHUB_REF }} | |
- name: Checkout GitHub pages branch | |
uses: actions/checkout@v4 | |
with: | |
path: gh-pages | |
ref: gh-pages | |
- uses: ruby/setup-ruby@v1 | |
with: | |
ruby-version: '3.2' | |
bundler-cache: true | |
- name: Build API docs | |
run: | | |
bundle exec rake site:fetch_latest apidocs:gen_version["${{ inputs.publish_version || env.GITHUB_REF }}"] | |
- name: Commit changes as last committer | |
run: | | |
git config --global user.name rmosolgo | |
git config --global user.email [email protected] | |
git status | |
bundle exec rake site:commit_changes | |
git status | |
- name: Deploy to GitHub pages via gh-pages branch | |
uses: s0/git-publish-subdir-action@master | |
env: | |
REPO: self | |
BRANCH: gh-pages | |
FOLDER: gh-pages | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} |