Don't try to commit and push if there is nothing to commit, because git will exit with 1, failing the workflow.
149 lines
4.9 KiB
YAML
149 lines
4.9 KiB
YAML
name: Deploy Documentation
|
|
|
|
on:
|
|
push:
|
|
branches: [ bleed ]
|
|
tags: [ 'release-*', 'playtest-*' ]
|
|
workflow_dispatch:
|
|
inputs:
|
|
tag:
|
|
description: 'Git Tag'
|
|
required: true
|
|
default: 'release-xxxxxxxx'
|
|
|
|
permissions:
|
|
contents: read # to fetch code (actions/checkout)
|
|
|
|
jobs:
|
|
prepare:
|
|
name: Prepare version strings
|
|
if: github.repository == 'openra/openra'
|
|
runs-on: ubuntu-22.04
|
|
steps:
|
|
- name: Prepare environment variables
|
|
run: |
|
|
if [ "${{ github.event_name }}" = "push" ]; then
|
|
if [ "${{ github.ref_type }}" = "tag" ]; then
|
|
VERSION_TYPE=`echo "${GITHUB_REF#refs/tags/}" | cut -d"-" -f1`
|
|
echo "GIT_TAG=${GITHUB_REF#refs/tags/}" >> $GITHUB_ENV
|
|
echo "VERSION_TYPE=$VERSION_TYPE" >> $GITHUB_ENV
|
|
else
|
|
echo "GIT_TAG=bleed" >> $GITHUB_ENV
|
|
echo "VERSION_TYPE=bleed" >> $GITHUB_ENV
|
|
fi
|
|
else
|
|
VERSION_TYPE=`echo "${{ github.event.inputs.tag }}" | cut -d"-" -f1`
|
|
echo "GIT_TAG=${{ github.event.inputs.tag }}" >> $GITHUB_ENV
|
|
echo "VERSION_TYPE=$VERSION_TYPE" >> $GITHUB_ENV
|
|
fi
|
|
outputs:
|
|
git_tag: ${{ env.GIT_TAG }}
|
|
version_type: ${{ env.VERSION_TYPE }}
|
|
|
|
wiki:
|
|
name: Update Wiki
|
|
needs: prepare
|
|
if: github.repository == 'openra/openra' && needs.prepare.outputs.version_type != 'bleed'
|
|
runs-on: ubuntu-22.04
|
|
steps:
|
|
- name: Debug output
|
|
run: |
|
|
echo ${{ needs.prepare.outputs.git_tag }}
|
|
echo ${{ needs.prepare.outputs.version_type }}
|
|
|
|
- name: Clone Repository
|
|
uses: actions/checkout@v3
|
|
with:
|
|
ref: ${{ needs.prepare.outputs.git_tag }}
|
|
|
|
- name: Install .NET 6
|
|
uses: actions/setup-dotnet@v3
|
|
with:
|
|
dotnet-version: '6.0.x'
|
|
|
|
- name: Prepare Environment
|
|
run: |
|
|
make all
|
|
|
|
- name: Clone Wiki
|
|
uses: actions/checkout@v3
|
|
with:
|
|
repository: openra/openra.wiki
|
|
token: ${{ secrets.DOCS_TOKEN }}
|
|
path: wiki
|
|
|
|
- name: Update Wiki (Playtest)
|
|
if: startsWith(needs.prepare.outputs.git_tag, 'playtest-')
|
|
run: |
|
|
./utility.sh all --settings-docs "${{ needs.prepare.outputs.git_tag }}" > "wiki/Settings (playtest).md"
|
|
|
|
- name: Update Wiki (Release)
|
|
if: startsWith(needs.prepare.outputs.git_tag, 'release-')
|
|
run: |
|
|
./utility.sh all --settings-docs "${{ needs.prepare.outputs.git_tag }}" > "wiki/Settings.md"
|
|
|
|
- name: Push Wiki
|
|
run: |
|
|
cd wiki
|
|
git config --local user.email "actions@github.com"
|
|
git config --local user.name "GitHub Actions"
|
|
git diff-index --quiet HEAD || \
|
|
(
|
|
git add --all && \
|
|
git commit -m "Update auto-generated documentation for ${{ needs.prepare.outputs.git_tag }}" && \
|
|
git push origin master
|
|
)
|
|
|
|
docs:
|
|
name: Update docs.openra.net
|
|
needs: prepare
|
|
if: github.repository == 'openra/openra'
|
|
runs-on: ubuntu-22.04
|
|
steps:
|
|
- name: Debug output
|
|
run: |
|
|
echo ${{ needs.prepare.outputs.git_tag }}
|
|
echo ${{ needs.prepare.outputs.version_type }}
|
|
|
|
- name: Clone Repository
|
|
uses: actions/checkout@v3
|
|
with:
|
|
ref: ${{ needs.prepare.outputs.git_tag }}
|
|
|
|
- name: Install .NET 6
|
|
uses: actions/setup-dotnet@v3
|
|
with:
|
|
dotnet-version: '6.0.x'
|
|
|
|
- name: Prepare Environment
|
|
run: |
|
|
make all
|
|
|
|
# version_type is release/playtest/bleed - the name of the target branch.
|
|
- name: Clone docs.openra.net
|
|
uses: actions/checkout@v3
|
|
with:
|
|
repository: openra/docs
|
|
token: ${{ secrets.DOCS_TOKEN }}
|
|
path: docs
|
|
ref: ${{ needs.prepare.outputs.version_type }}
|
|
|
|
- name: Generate docs files
|
|
run: |
|
|
./utility.sh all --docs "${{ needs.prepare.outputs.git_tag }}" | python3 ./packaging/format-docs.py > "docs/api/traits.md"
|
|
./utility.sh all --weapon-docs "${{ needs.prepare.outputs.git_tag }}" | python3 ./packaging/format-docs.py > "docs/api/weapons.md"
|
|
./utility.sh all --sprite-sequence-docs "${{ needs.prepare.outputs.git_tag }}" | python3 ./packaging/format-docs.py > "docs/api/sprite-sequences.md"
|
|
./utility.sh all --lua-docs "${{ needs.prepare.outputs.git_tag }}" > "docs/api/lua.md"
|
|
|
|
- name: Update docs.openra.net
|
|
run: |
|
|
cd docs
|
|
git config --local user.email "actions@github.com"
|
|
git config --local user.name "GitHub Actions"
|
|
git diff-index --quiet HEAD || \
|
|
(
|
|
git add api/*.md && \
|
|
git commit -m "Update auto-generated documentation for ${{ needs.prepare.outputs.git_tag }}" && \
|
|
git push origin ${{ needs.prepare.outputs.version_type }}
|
|
)
|