Update build.yaml #45
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
# This file was generated using Kotlin DSL (.github/workflows/build.main.kts). | |
# If you want to modify the workflow, please change the Kotlin file and regenerate this YAML file. | |
# Generated with https://github.com/typesafegithub/github-workflows-kt | |
name: 'Build' | |
on: | |
push: {} | |
pull_request: {} | |
jobs: | |
check_yaml_consistency: | |
name: 'Check YAML consistency' | |
runs-on: 'ubuntu-latest' | |
steps: | |
- id: 'step-0' | |
name: 'Check out' | |
uses: 'actions/checkout@v4' | |
- id: 'step-1' | |
name: 'Execute script' | |
run: 'rm ''.github/workflows/build.yaml'' && ''.github/workflows/build.main.kts''' | |
- id: 'step-2' | |
name: 'Consistency check' | |
run: 'git diff --exit-code ''.github/workflows/build.yaml''' | |
build: | |
name: 'Build on ${{ matrix.os }}' | |
runs-on: '${{ matrix.os }}' | |
needs: | |
- 'check_yaml_consistency' | |
strategy: | |
fail-fast: false | |
matrix: | |
os: | |
- 'ubuntu-latest' | |
- 'windows-latest' | |
- 'macos-latest' | |
steps: | |
- id: 'step-0' | |
name: 'Install InnoSetup on Linux' | |
shell: 'bash' | |
run: |- | |
sudo dpkg --add-architecture i386 | |
sudo wget -nc -O /etc/apt/keyrings/winehq-archive.key https://dl.winehq.org/wine-builds/winehq.key | |
sudo wget -NP /etc/apt/sources.list.d/ "https://dl.winehq.org/wine-builds/ubuntu/dists/$(lsb_release -c | grep -o '\w*$')/winehq-$(lsb_release -c | grep -o '\w*$').sources" | |
sudo apt update | |
sudo apt install --yes --no-install-recommends winehq-stable | |
winecfg /v win10 | |
wget https://files.jrsoftware.org/is/6/innosetup-6.3.3.exe | |
Xvfb :0 -screen 0 1024x768x16 & | |
export DISPLAY=:0.0 | |
wine innosetup-6.3.3.exe /SP- /VERYSILENT /SUPPRESSMSGBOXES /NORESTART | |
if: 'runner.os == ''Linux''' | |
- id: 'step-1' | |
name: 'Install InnoSetup on macOS' | |
shell: 'bash' | |
run: |- | |
brew install wine-stable | |
wget https://files.jrsoftware.org/is/6/innosetup-6.3.3.exe | |
wine innosetup-6.3.3.exe /SP- /VERYSILENT /SUPPRESSMSGBOXES /NORESTART | |
if: 'runner.os == ''macOS''' | |
- id: 'step-2' | |
name: 'Configure Git' | |
run: 'git config --global core.autocrlf input' | |
- id: 'step-3' | |
name: 'Checkout' | |
uses: 'actions/checkout@v4' | |
- id: 'step-4' | |
name: 'Setup Java 11' | |
uses: 'actions/setup-java@v4' | |
with: | |
java-version: '11' | |
distribution: 'temurin' | |
- id: 'step-5' | |
name: 'Configure Build Properties for Linux' | |
uses: 'DamianReeves/[email protected]' | |
with: | |
path: 'build.properties' | |
contents: |- | |
wine.executable = wine | |
winepath.executable = winepath | |
innosetup.compiler.executable = /home/runner/.wine/drive_c/Program Files (x86)/Inno Setup 6/ISCC.exe | |
innosetup.via.wine = true | |
if: 'runner.os == ''Linux''' | |
- id: 'step-6' | |
name: 'Configure Build Properties for Windows' | |
uses: 'DamianReeves/[email protected]' | |
with: | |
path: 'build.properties' | |
contents: 'innosetup.compiler.executable = C:/Program Files (x86)/Inno Setup 6/ISCC.exe' | |
if: 'runner.os == ''Windows''' | |
- id: 'step-7' | |
name: 'Configure Build Properties for macOS' | |
uses: 'DamianReeves/[email protected]' | |
with: | |
path: 'build.properties' | |
contents: |- | |
wine.executable = wine | |
winepath.executable = winepath | |
innosetup.compiler.executable = /Users/runner/.wine/drive_c/Program Files (x86)/Inno Setup 6/ISCC.exe | |
innosetup.via.wine = true | |
if: 'runner.os == ''macOS''' | |
- id: 'step-8' | |
name: 'Build' | |
run: 'ant -v -keep-going dist' | |
- id: 'step-9' | |
name: 'Upload All Result Files' | |
uses: 'actions/upload-artifact@v4' | |
with: | |
name: 'All Artifacts' | |
path: |- | |
dist/jedit*manual-a4.pdf | |
dist/jedit*manual-letter.pdf | |
dist/jedit*source.tar.bz2 | |
dist/jedit*install.jar | |
dist/jedit-*-noarch-1sao.tgz | |
dist/jedit_*_all.deb | |
dist/jedit*install.exe | |
dist/jedit*install.dmg | |
dist/jedit*-dist-mac-finish.tar.bz2 | |
dist/Packages | |
dist/Packages.gz | |
dist/Packages.bz2 | |
dist/Release | |
dist/Release.gpg | |
if-no-files-found: 'error' | |
compression-level: '0' | |
if: |- | |
((always()) | |
&& (steps.step-8.outcome == 'success')) && (runner.os == 'macOS') | |
- id: 'step-10' | |
name: 'Upload Manual in A4 Paper size' | |
uses: 'actions/upload-artifact@v4' | |
with: | |
name: 'Manual in A4 Paper size' | |
path: 'dist/jedit*manual-a4.pdf' | |
if-no-files-found: 'error' | |
compression-level: '0' | |
overwrite: 'true' | |
if: |- | |
(always()) | |
&& (steps.step-8.outcome == 'success') | |
- id: 'step-11' | |
name: 'Upload Manual in Letter Paper size' | |
uses: 'actions/upload-artifact@v4' | |
with: | |
name: 'Manual in Letter Paper size' | |
path: 'dist/jedit*manual-letter.pdf' | |
if-no-files-found: 'error' | |
compression-level: '0' | |
overwrite: 'true' | |
if: |- | |
(always()) | |
&& (steps.step-8.outcome == 'success') | |
- id: 'step-12' | |
name: 'Upload Source Package' | |
uses: 'actions/upload-artifact@v4' | |
with: | |
name: 'Source Package' | |
path: 'dist/jedit*source.tar.bz2' | |
if-no-files-found: 'error' | |
compression-level: '0' | |
overwrite: 'true' | |
if: |- | |
(always()) | |
&& (steps.step-8.outcome == 'success') | |
- id: 'step-13' | |
name: 'Upload Java based Installer' | |
uses: 'actions/upload-artifact@v4' | |
with: | |
name: 'Java based Installer' | |
path: 'dist/jedit*install.jar' | |
if-no-files-found: 'error' | |
compression-level: '0' | |
overwrite: 'true' | |
if: |- | |
(always()) | |
&& (steps.step-8.outcome == 'success') | |
- id: 'step-14' | |
name: 'Upload Slackware Installer' | |
uses: 'actions/upload-artifact@v4' | |
with: | |
name: 'Slackware Installer' | |
path: 'dist/jedit-*-noarch-1sao.tgz' | |
if-no-files-found: 'error' | |
compression-level: '0' | |
overwrite: 'true' | |
if: |- | |
(always()) | |
&& (steps.step-8.outcome == 'success') | |
- id: 'step-15' | |
name: 'Upload Debian Installer' | |
uses: 'actions/upload-artifact@v4' | |
with: | |
name: 'Debian Installer' | |
path: 'dist/jedit_*_all.deb' | |
if-no-files-found: 'error' | |
compression-level: '0' | |
overwrite: 'true' | |
if: |- | |
(always()) | |
&& (steps.step-8.outcome == 'success') | |
- id: 'step-16' | |
name: 'Upload Windows Installer' | |
uses: 'actions/upload-artifact@v4' | |
with: | |
name: 'Windows Installer' | |
path: 'dist/jedit*install.exe' | |
if-no-files-found: 'error' | |
compression-level: '0' | |
overwrite: 'true' | |
if: |- | |
(always()) | |
&& (steps.step-8.outcome == 'success') | |
- id: 'step-17' | |
name: 'Upload macOS Installer' | |
uses: 'actions/upload-artifact@v4' | |
with: | |
name: 'macOS Installer' | |
path: 'dist/jedit*install.dmg' | |
if-no-files-found: 'error' | |
compression-level: '0' | |
overwrite: 'true' | |
if: |- | |
((always()) | |
&& (steps.step-8.outcome == 'success')) && (runner.os == 'macOS') | |
- id: 'step-18' | |
name: 'Upload macOS Intermediate Result' | |
uses: 'actions/upload-artifact@v4' | |
with: | |
name: 'macOS Intermediate Result' | |
path: 'dist/jedit*-dist-mac-finish.tar.bz2' | |
if-no-files-found: 'error' | |
compression-level: '0' | |
overwrite: 'true' | |
if: |- | |
((always()) | |
&& (steps.step-8.outcome == 'success')) && (runner.os != 'macOS') | |
- id: 'step-19' | |
name: 'Upload Debian Repository Packages File' | |
uses: 'actions/upload-artifact@v4' | |
with: | |
name: 'Debian Repository Packages File' | |
path: 'dist/Packages' | |
if-no-files-found: 'ignore' | |
compression-level: '0' | |
overwrite: 'true' | |
if: |- | |
(always()) | |
&& (steps.step-8.outcome == 'success') | |
- id: 'step-20' | |
name: 'Upload Debian Repository Packages File (gz)' | |
uses: 'actions/upload-artifact@v4' | |
with: | |
name: 'Debian Repository Packages File (gz)' | |
path: 'dist/Packages.gz' | |
if-no-files-found: 'ignore' | |
compression-level: '0' | |
overwrite: 'true' | |
if: |- | |
(always()) | |
&& (steps.step-8.outcome == 'success') | |
- id: 'step-21' | |
name: 'Upload Debian Repository Packages File (bz2)' | |
uses: 'actions/upload-artifact@v4' | |
with: | |
name: 'Debian Repository Packages File (bz2)' | |
path: 'dist/Packages.bz2' | |
if-no-files-found: 'ignore' | |
compression-level: '0' | |
overwrite: 'true' | |
if: |- | |
(always()) | |
&& (steps.step-8.outcome == 'success') | |
- id: 'step-22' | |
name: 'Upload Debian Repository Release File' | |
uses: 'actions/upload-artifact@v4' | |
with: | |
name: 'Debian Repository Release File' | |
path: 'dist/Release' | |
if-no-files-found: 'ignore' | |
compression-level: '0' | |
overwrite: 'true' | |
if: |- | |
(always()) | |
&& (steps.step-8.outcome == 'success') | |
- id: 'step-23' | |
name: 'Upload Debian Repository Release File Signature' | |
uses: 'actions/upload-artifact@v4' | |
with: | |
name: 'Debian Repository Release File Signature' | |
path: 'dist/Release.gpg' | |
if-no-files-found: 'ignore' | |
compression-level: '0' | |
overwrite: 'true' | |
if: |- | |
(always()) | |
&& (steps.step-8.outcome == 'success') | |
- id: 'step-24' | |
name: 'Upload All Unexpected Result Files' | |
uses: 'actions/upload-artifact@v4' | |
with: | |
name: 'Unexpected Artifacts (${{ runner.os }})' | |
path: |- | |
dist | |
!dist/jedit*manual-a4.pdf | |
!dist/jedit*manual-letter.pdf | |
!dist/jedit*source.tar.bz2 | |
!dist/jedit*install.jar | |
!dist/jedit-*-noarch-1sao.tgz | |
!dist/jedit_*_all.deb | |
!dist/jedit*install.exe | |
!dist/jedit*install.dmg | |
!dist/jedit*-dist-mac-finish.tar.bz2 | |
!dist/Packages | |
!dist/Packages.gz | |
!dist/Packages.bz2 | |
!dist/Release | |
!dist/Release.gpg | |
if-no-files-found: 'ignore' | |
compression-level: '0' | |
if: |- | |
(always()) | |
&& (steps.step-8.outcome == 'success') | |
- id: 'step-25' | |
name: 'Verify No Unexpected Result Files' | |
shell: 'bash' | |
run: '[ ''${{ steps.step-24.outputs.artifact-id }}'' == '''' ]' | |
if: |- | |
(always()) | |
&& (steps.step-24.outcome == 'success') |