Skip to content

Commit

Permalink
Add workflow to update GitHub Actions configuration
Browse files Browse the repository at this point in the history
Signed-off-by: Jarno Elovirta <[email protected]>
  • Loading branch information
jelovirt committed Nov 10, 2023
1 parent d548e10 commit f37084c
Showing 1 changed file with 113 additions and 84 deletions.
197 changes: 113 additions & 84 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -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

0 comments on commit f37084c

Please sign in to comment.