The Meson Build System
http://mesonbuild.com/
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
91 lines
2.7 KiB
91 lines
2.7 KiB
name: Update website |
|
|
|
concurrency: |
|
group: mesonbuild.com |
|
# We do NOT want `cancel-in-progress` here since only one website job |
|
# should run at a time to avoid upload race conditions. |
|
|
|
on: |
|
push: |
|
branches: |
|
- master |
|
paths: |
|
- .github/workflows/website.yml |
|
- docs/** |
|
pull_request: |
|
paths: |
|
- .github/workflows/website.yml |
|
- docs/** |
|
workflow_dispatch: |
|
release: |
|
types: |
|
- published |
|
|
|
permissions: |
|
contents: write # for release creation (svenstaro/upload-release-action) |
|
|
|
# This job is copy/paster into wrapdb CI, please update it there when doing any |
|
# change here. |
|
jobs: |
|
update_website: |
|
env: |
|
HAS_SSH_KEY: ${{ secrets.WEBSITE_PRIV_KEY != '' }} |
|
runs-on: ubuntu-latest |
|
steps: |
|
- uses: actions/checkout@v4 |
|
|
|
- uses: actions/cache/restore@v3 |
|
id: restore-cache |
|
with: |
|
# should use 'pip3 cache dir' to discover this path |
|
path: ~/.cache/pip |
|
key: website-pip-${{ github.run_number }} |
|
restore-keys: website-pip- |
|
|
|
- name: Install package |
|
run: | |
|
sudo apt-get -y install python3-pip ninja-build libjson-glib-dev |
|
pip install hotdoc chevron strictyaml |
|
|
|
- uses: actions/cache/save@v3 |
|
with: |
|
# should use 'pip3 cache dir' to discover this path |
|
path: ~/.cache/pip |
|
key: website-pip-${{ github.run_number }} |
|
|
|
- name: Setup SSH Keys and known_hosts |
|
env: |
|
SSH_AUTH_SOCK: /tmp/ssh_agent.sock |
|
run: | |
|
ssh-agent -a $SSH_AUTH_SOCK > /dev/null |
|
ssh-add - <<< "${{ secrets.WEBSITE_PRIV_KEY }}" |
|
if: github.ref == 'refs/heads/master' && env.HAS_SSH_KEY == 'true' |
|
- name: Build website |
|
run: | |
|
git config --global user.name "github-actions" |
|
git config --global user.email "github-actions@github.com" |
|
cd docs |
|
../meson.py setup _build |
|
ninja -C _build |
|
ninja -C _build test |
|
- name: Update website |
|
env: |
|
SSH_AUTH_SOCK: /tmp/ssh_agent.sock |
|
run: | |
|
cd docs |
|
ninja -C _build upload |
|
if: github.ref == 'refs/heads/master' && env.HAS_SSH_KEY == 'true' |
|
- name: Release the current JSON docs |
|
uses: svenstaro/upload-release-action@v2 |
|
with: |
|
repo_token: ${{ secrets.GITHUB_TOKEN }} |
|
file: docs/_build/reference_manual.json |
|
tag: ${{ github.ref }} |
|
if: ${{ github.event_name == 'release' }} |
|
- name: Release the current man docs |
|
uses: svenstaro/upload-release-action@v2 |
|
with: |
|
repo_token: ${{ secrets.GITHUB_TOKEN }} |
|
file: docs/_build/meson-reference.3 |
|
tag: ${{ github.ref }} |
|
if: ${{ github.event_name == 'release' }}
|
|
|