-
Notifications
You must be signed in to change notification settings - Fork 96
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Add workflow to update GitHub Actions configuration
Signed-off-by: Jarno Elovirta <[email protected]>
- Loading branch information
Showing
1 changed file
with
113 additions
and
84 deletions.
There are no files selected for viewing
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
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -15,104 +15,133 @@ on: | |
types: [release] | ||
|
||
jobs: | ||
deploy: | ||
# deploy: | ||
# runs-on: ubuntu-latest | ||
# env: | ||
# WEBSITE_PLUGIN_BRANCH: 'master' | ||
# DITA_OT_VERSION: '4.0.1' | ||
# 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@v3 | ||
# with: | ||
# distribution: temurin | ||
# java-version: 17 | ||
# | ||
# - 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@v3 | ||
# 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@v5 | ||
# 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 <[email protected]>' | ||
# signoff: true | ||
# token: ${{ secrets.COMMITTER_TOKEN }} | ||
# path: website | ||
# labels: | | ||
# release-updates | ||
|
||
update-ci: | ||
runs-on: ubuntu-latest | ||
env: | ||
WEBSITE_PLUGIN_BRANCH: 'master' | ||
DITA_OT_VERSION: '4.0.1' | ||
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@v3 | ||
- name: Update GitHub Actions release workflow | ||
uses: mikefarah/yq@master | ||
with: | ||
distribution: temurin | ||
java-version: 17 | ||
|
||
- name: Check out website | ||
uses: actions/checkout@v4 | ||
cmd: yq -i '.jobs.deploy.env.DITA_OT_VERSION = "${{ github.event.inputs.dita-ot-version }}"' '.github/workflows/release.yml' | ||
- name: Update GitHub Actions render action | ||
uses: mikefarah/yq@master | ||
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@v3 | ||
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 }} | ||
cmd: yq -i '.inputs.DITA_OT_VERSION.default = "${{ github.event.inputs.dita-ot-version }}"' '.github/actions/render/action.yml' | ||
|
||
- name: Create release PR | ||
uses: peter-evans/create-pull-request@v5 | ||
with: | ||
branch: release/${{ github.event.inputs.dita-ot-version }} | ||
title: 'Update site for ${{ github.event.inputs.dita-ot-version }}' | ||
branch: release/github-actions-${{ github.event.inputs.dita-ot-version }} | ||
title: 'Update docs GitHub Actions 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 }}' | ||
Update docs GitHub Actions for ${{ github.event.inputs.dita-ot-version }}. | ||
commit-message: 'Update GitHub Actions for ${{ github.event.inputs.dita-ot-version }}' | ||
committer: 'DITA-OT Bot <[email protected]>' | ||
signoff: true | ||
token: ${{ secrets.COMMITTER_TOKEN }} | ||
path: website | ||
labels: | | ||
release-updates |