wxWidgets/.github/workflows/make_release.yml
Vadim Zeitlin 032a71b4db Update GitHub actions to avoid relying on deprecated versions
This backports changes already done in master and upgrades to the
currently supported versions of the different actions, most importantly
actions/checkout one.
2022-12-18 03:22:54 +01:00

122 lines
4.6 KiB
YAML

# This manually triggered workflow creates a new draft release.
name: Create Release
on:
workflow_dispatch:
inputs:
version:
description: 'Release version'
required: true
permissions:
contents: write
jobs:
add_release_sources:
runs-on: ubuntu-22.04
name: Create Release with Source Archives
steps:
- name: Checkout
uses: actions/checkout@v3
with:
submodules: 'recursive'
- name: Install Required Tools
run: |
sudo apt-get -q -o=Dpkg::Use-Pty=0 -y install doxygen gettext graphviz
- name: Create Release Archives
run: ./build/tools/release.sh ${{ inputs.version }}
# This is not very elegant, but we can't update checksums from two
# different jobs, so we just append to the release body which then
# needs to be edited interactively.
- name: Create Archives Checksums
working-directory: distrib/release/${{ inputs.version }}
run: |
printf '\n# THESE CHECKSUMS MUST BE MOVED ABOVE!\n\n````' >> ../../../docs/release.md
sha1sum * | tee -a ../../../docs/release.md
- name: Create Draft Release
# Note: use a fork of softprops/action-gh-release which includes
# https://github.com/softprops/action-gh-release/pull/254 fixing
# updating the body of the draft releases. We should replace the SHA-1
# with a tag when an upstream release including this fix is made.
uses: vadz/action-gh-release@1460c8b8cca97de38c3557ca4a277b55f4971abc
id: create_release
with:
name: wxWidgets ${{ inputs.version }}
body_path: docs/release.md
files: |
distrib/release/${{ inputs.version }}/wxWidgets-${{ inputs.version }}.zip
distrib/release/${{ inputs.version }}/wxWidgets-${{ inputs.version }}.7z
distrib/release/${{ inputs.version }}/wxWidgets-${{ inputs.version }}.tar.bz2
distrib/release/${{ inputs.version }}/wxWidgets-${{ inputs.version }}-headers.7z
distrib/release/${{ inputs.version }}/wxWidgets-${{ inputs.version }}-docs-html.zip
distrib/release/${{ inputs.version }}/wxWidgets-${{ inputs.version }}-docs-html.tar.bz2
fail_on_unmatched_files: true
draft: true
# We have to store the archive used by the job below as an artifact
# because it can't be downloaded from a draft release without
# impersonating the same user and I don't know how to do it.
- name: Upload Release Archive
uses: actions/upload-artifact@v3
with:
name: wxWidgets-${{ inputs.version }}-source-archive
path: distrib/release/${{ inputs.version }}/wxWidgets-${{ inputs.version }}.zip
retention-days: 1
add_msw_files:
needs: add_release_sources
runs-on: windows-2022
name: Add MSW Files to the Release
steps:
- name: Checkout
uses: actions/checkout@v3
- name: Download Release Archive
uses: actions/download-artifact@v3
with:
name: wxWidgets-${{ inputs.version }}-source-archive
- name: Install Prerequisites
run: |
choco install -y --no-progress graphviz html-help-workshop
- name: Create MSW Installer and Help File
shell: cmd
run: |
md distrib\release
md distrib\release\${{ inputs.version }}
move wxWidgets-${{ inputs.version }}.zip distrib\release\${{ inputs.version }}
set "PATH=C:\Program Files (x86)\HTML Help Workshop;%PATH%"
build\tools\release.bat ${{ inputs.version }}
# This doesn't really decrease the file size but .chm files can't be
# uploaded to GitHub, while .zip files can.
- name: Pack CHM File
working-directory: distrib/release/${{ inputs.version }}
run: 7z a wxWidgets-${{ inputs.version }}-docs-chm.zip wxWidgets-${{ inputs.version }}.chm
- name: Create Archives Checksums
working-directory: distrib/release/${{ inputs.version }}
shell: cmd
run: |
sha1sum * > ..\..\..\checksums
type ..\..\..\checksums
- name: Add Files to the Release
uses: vadz/action-gh-release@1460c8b8cca97de38c3557ca4a277b55f4971abc
with:
name: wxWidgets ${{ inputs.version }}
body_path: checksums
append_body: true
files: |
distrib/release/${{ inputs.version }}/wxMSW-${{ inputs.version }}-Setup.exe
distrib/release/${{ inputs.version }}/wxWidgets-${{ inputs.version }}-docs-chm.zip
fail_on_unmatched_files: true
draft: true