Skip to content

Update build.yaml

Update build.yaml #45

Workflow file for this run

# 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')