Merge pull request #114 from vshn/add/ci_improvements #123
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: Docs | |
on: | |
push: | |
branches: | |
- master | |
tags: | |
- "*" | |
jobs: | |
antora: | |
runs-on: ubuntu-latest | |
if: ${{ contains(github.ref, 'tags') }} | |
steps: | |
- uses: actions/checkout@v3 | |
with: | |
fetch-depth: 0 | |
- name: Configure Git | |
run: | | |
git config user.name "Antora via GitHub Actions" | |
git config user.email "[email protected]" | |
- name: Parse semver string | |
id: semver | |
uses: booxmedialtd/ws-action-parse-semver@v1 | |
with: | |
input_string: ${{ github.ref }} | |
version_extractor_regex: '\/v(.*)$' | |
- name: Set variables | |
run: | | |
echo "MINOR_VERSION=${{ steps.semver.outputs.major }}.${{ steps.semver.outputs.minor }}" >> $GITHUB_ENV | |
echo "BRANCH_NAME=docs/v${{ steps.semver.outputs.major }}.${{ steps.semver.outputs.minor }}" >> $GITHUB_ENV | |
- name: Set branch name for Prerelease | |
if: ${{ steps.semver.outputs.prerelease != '' }} | |
run: echo "BRANCH_NAME=${{ env.BRANCH_NAME }}-rc" >> $GITHUB_ENV | |
- name: Checkout remote branch if exists | |
run: git checkout ${{ env.BRANCH_NAME }} | |
continue-on-error: true | |
- name: Rebase if possible | |
run: git rebase ${GITHUB_REF##*/} ${{ env.BRANCH_NAME }} | |
continue-on-error: true | |
- name: Create new branch if not existing | |
run: git switch --create ${{ env.BRANCH_NAME }} | |
continue-on-error: true | |
- name: Patch Antora file for Release | |
run: yq eval 'del(.prerelease) | del (.display_version) | .version = "${{ env.MINOR_VERSION }}"' -i docs/antora.yml | |
if: ${{ steps.semver.outputs.prerelease == '' }} | |
- name: Patch Antora file for Prerelease | |
run: yq eval 'del (.display_version) | .version = "${{ env.MINOR_VERSION }}", .prerelease = "-${{ steps.semver.outputs.prerelease }}"' -i docs/antora.yml | |
if: ${{ steps.semver.outputs.prerelease != '' }} | |
- name: Commit | |
run: git commit --all --message "Update version for Antora" | |
continue-on-error: true | |
- name: Push | |
run: git push --atomic --force --set-upstream origin ${{ env.BRANCH_NAME }} | |
- name: Cleanup prerelease branch if existing | |
if: ${{ steps.semver.outputs.prerelease == '' }} | |
run: git push origin --delete ${{ env.BRANCH_NAME }}-rc | |
continue-on-error: true | |
gh-pages: | |
runs-on: ubuntu-latest | |
# The needs+if combo will cause this job to wait until Antora versioning is done for tags, but still run on master branch | |
needs: antora | |
if: always() | |
steps: | |
- uses: actions/checkout@v3 | |
with: | |
fetch-depth: 0 | |
- name: Configure Git | |
run: | | |
git remote set-url origin "https://x-access-token:${{ secrets.GITHUB_TOKEN }}@github.com/${{ github.repository }}" | |
git config user.name "Antora via GitHub Actions" | |
git config user.email "[email protected]" | |
- name: Publish documentation | |
run: make docs-publish |