Skip to content

Generate website release PR #31

Generate website release PR

Generate website release PR #31

Workflow file for this run

# This workflow builds changes to release tag and commits to website repo for release PR
name: Generate website release PR
on:
workflow_dispatch:
inputs:
dita-ot-version:
description: 'DITA-OT version'
required: true
docs-tag:
description: 'Docs tag'
required: true
repository_dispatch:
types: [release]
jobs:
deploy:
runs-on: ubuntu-latest
env:
WEBSITE_PLUGIN_BRANCH: 'master'
DITA_OT_VERSION: '4.2'
steps:
- name: Parse arguments
run: |
if [[ -n "${{ github.event.client_payload.dita_ot_version }}" ]]; then
readonly TOKENS=($(echo "${{ github.event.client_payload.dita_ot_version }}" | tr '.' ' '))
else
readonly TOKENS=($(echo "${{ github.event.inputs.dita-ot-version }}" | tr '.' ' '))
fi
echo "RELEASE=${TOKENS[0]}.${TOKENS[1]}" >> $GITHUB_ENV
if [[ -n "${{ github.event.client_payload.docs_tag }}" ]]; then
echo "TAG=${{ github.event.client_payload.docs_tag }}" >> $GITHUB_ENV
else
echo "TAG=${{ github.event.inputs.docs-tag }}" >> $GITHUB_ENV
fi
- name: Check out docs
uses: actions/checkout@v4
with:
ref: ${{ env.TAG }}
- name: Set variables
run: |
echo "GITHUB_SHA_SHORT=$(git rev-parse --short HEAD)" >> $GITHUB_ENV
- name: Set up JDK 17
uses: actions/setup-java@v4
with:
distribution: temurin
java-version: 17
cache: 'gradle'
- name: Check out website
uses: actions/checkout@v4
with:
repository: dita-ot/website
token: ${{ secrets.COMMITTER_TOKEN }}
path: website
- name: Download website plug-in
run: |
curl -sL https://github.com/dita-ot/org.dita-ot.html/archive/refs/heads/${{ env.WEBSITE_PLUGIN_BRANCH }}.zip -o org.dita-ot.html.zip
- name: Cache render DITA-OT
uses: actions/cache@v4
with:
path: dita-ot-${{ env.DITA_OT_VERSION }}
key: ${{ runner.os }}-dita-ot-${{ env.DITA_OT_VERSION }}
- name: Download render DITA-OT
run: |
if [ ! -d "dita-ot-${{ env.DITA_OT_VERSION }}" ]; then
curl -sL https://github.com/dita-ot/dita-ot/releases/download/${{ env.DITA_OT_VERSION }}/dita-ot-${{ env.DITA_OT_VERSION }}.zip -o dita-ot-${{ env.DITA_OT_VERSION }}.zip
unzip dita-ot-${{ env.DITA_OT_VERSION }}.zip
else
echo "Use cached dita-ot-${{ env.DITA_OT_VERSION }}"
fi
dita-ot-${{ env.DITA_OT_VERSION }}/bin/dita install org.dita-ot.html.zip --force -v
- name: Download release DITA-OT
run: |
curl -sL https://github.com/dita-ot/dita-ot/releases/download/$VERSION/dita-ot-$VERSION.zip -o dita-ot-$VERSION.zip
unzip dita-ot-$VERSION.zip -d src-dita-ot
env:
VERSION: ${{ github.event.inputs.dita-ot-version }}
- name: Run DITA-OT
run: |
./gradlew site \
-PditaHome=$DITA_HOME \
-PoutputDir=$WEBSITE_DIR/${{ env.RELEASE }} \
-PditaHomeSrc=${{ env.RELEASE_DITA_OT }} \
-PnoCommitMeta=true \
--info --stacktrace --no-daemon
env:
VERSION: ${{ github.event.inputs.dita-ot-version }}
WEBSITE_DIR: ${{ github.workspace }}/website
DITA_HOME: ${{ github.workspace }}/dita-ot-${{ env.DITA_OT_VERSION }}
RELEASE_DITA_OT: ${{ github.workspace }}/src-dita-ot/dita-ot-${{ github.event.inputs.dita-ot-version }}
- name: Create release PR
uses: peter-evans/create-pull-request@v6
with:
branch: release/${{ github.event.inputs.dita-ot-version }}
title: 'Update site for ${{ github.event.inputs.dita-ot-version }}'
body: |
Update DITA-OT ${{ github.event.inputs.dita-ot-version }} docs to `/${{ env.RELEASE }}`.
Built from commits:
* dita-ot/docs@${{ env.GITHUB_SHA_SHORT }} (${{ github.event.inputs.docs-tag }})
* dita-ot/dita-ot (${{ github.event.inputs.dita-ot-version }})
* dita-ot/org.dita-ot.html (${{ env.WEBSITE_PLUGIN_BRANCH }})
commit-message: 'Update ‘${{ env.RELEASE }}’ docs for ${{ github.event.inputs.dita-ot-version }}'
committer: 'DITA-OT Bot <ditaotbot@gmail.com>'
signoff: true
token: ${{ secrets.DOCS_RELEASE_TOKEN }}
path: website
labels: |
release-updates
update-ci:
runs-on: ubuntu-latest
steps:
- name: Parse arguments
run: |
if [[ -n "${{ github.event.client_payload.dita_ot_version }}" ]]; then
echo "VERSION=${{ github.event.client_payload.dita_ot_version }}" >> $GITHUB_ENV
else
echo "VERSION=${{ github.event.inputs.dita-ot-version }}" >> $GITHUB_ENV
fi
- name: Check out docs
uses: actions/checkout@v4
with:
ref: develop
- name: Update GitHub Actions release workflow
uses: mikefarah/yq@master
with:
cmd: yq -i '.jobs.deploy.env.DITA_OT_VERSION = "${{ env.VERSION }}"' '.github/workflows/release.yml'
- name: Update GitHub Actions render action
uses: mikefarah/yq@master
with:
cmd: yq -i '.inputs.DITA_OT_VERSION.default = "${{ env.VERSION }}"' '.github/actions/render/action.yml'
- name: Create release PR
uses: peter-evans/create-pull-request@v6
with:
branch: feature/update-github-actions-${{ env.VERSION }}
title: 'Update docs GitHub Actions for ${{ env.VERSION }}'
body: |
Update docs GitHub Actions for ${{ env.VERSION }}.
commit-message: 'Update GitHub Actions for ${{ env.VERSION }}'
committer: 'DITA-OT Bot <ditaotbot@gmail.com>'
signoff: true
token: ${{ secrets.DOCS_RELEASE_TOKEN }}
labels: |
release-updates