Skip to content

Commit

Permalink
Merge pull request #427 from jmalak/workflow-cleanup-6
Browse files Browse the repository at this point in the history
add new local composite actions to simplify workflow script
  • Loading branch information
davidrg authored Dec 13, 2024
2 parents c295c34 + 796bd16 commit 0fc407b
Show file tree
Hide file tree
Showing 9 changed files with 1,261 additions and 1,143 deletions.
6 changes: 3 additions & 3 deletions .github/actions/cache/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ inputs:
outputs:
cache-hit:
description: 'output cache-hit'
value: ${{ steps.cachecmd.outputs.cache-hit }}
value: ${{steps.cachecmd.outputs.cache-hit}}
runs:
using: composite
steps:
Expand All @@ -23,8 +23,8 @@ runs:
uses: actions/cache@v4
id: cachecmd
with:
path: ${{ inputs.path }}
key: ${{ inputs.key }}
path: ${{inputs.path}}
key: ${{inputs.key}}
- name: output value
if: inputs.nocache == 'true'
run: |
Expand Down
29 changes: 29 additions & 0 deletions .github/actions/files-check/action.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
name: check-file-list
description: 'Checking files in the list'

inputs:
path:
description: 'path where to check'
default: ''
list:
description: 'list of files to check'
default: ''
runs:
using: composite
steps:
- name: Check file list
working-directory: ${{inputs.path}}
run: |
missing_files=
for fname in ${{inputs.list}}; do
if [[ ! -f "$fname" ]]; then
echo "Build result not found: $fname"
missing_files=$missing_files $fname
fi
done
if [[ ! -z "$missing_files" ]]; then
echo "Missing build outputs: $missing_files"
echo "One or more expected outputs are missing - failing build"
exit 1
fi
shell: bash
43 changes: 43 additions & 0 deletions .github/actions/load-openzinc/action.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
name: load-open-zinc
description: Load Open Zinc
inputs:
nocache:
description: 'skip cache'
default: ''
required: false
type: string
ver:
description: 'version'
default: ''
required: false
type: string
id:
description: 'Identification'
default: ''
required: false
type: string
#
# expected filename: https://ftp.zx.net.nz/pub/dev/openzinc/oz1/OZ1.zip
#
# OpenZinc is available from http://openzinc.com/Downloads/OZ1.zip
# But we don't want to waste the resources of the generous OpenZinc developer,
# so we grab it from a mirror
#
runs:
using: composite
steps:
- name: Load Cache Open Zinc
if: inputs.nocache != 'true'
uses: actions/cache@v4
id: cache-openzinc
with:
path: ${{github.workspace}}/zinc
key: all-openzinc
- name: Get and unpack Open Zinc
if: steps.cache-openzinc.outputs.cache-hit != 'true'
run: |
mkdir -p zinc
curl -LsS -o oz1.zip ${{env.OPENZINC}}
7z x oz1.zip -ozinc
rm -f oz1.zip
shell: bash
99 changes: 99 additions & 0 deletions .github/actions/load-tools/action.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,99 @@
name: load-build-tools
description: Load build tools
inputs:
nocache:
description: 'skip cache'
default: ''
required: false
type: string
#
# JOM make, used instead of nmake for parallel builds
#
# expected filename: https://download.qt.io/official_releases/jom/jom.zip
#
# NASM assembler
#
# expected filename: https://www.nasm.us/pub/nasm/releasebuilds/2.15.05/win32/nasm-2.15.05-win32.zip
#
# Infozip
#
# expected filename: ftp://ftp.info-zip.org/pub/infozip/win32/zip300xn.zip
# expected filename: ftp://ftp.info-zip.org/pub/infozip/os2/unz600.exe
#
# alternate site: https://ftp.zx.net.nz/pub/archive/ftp.info-zip.org/pub/infozip/
#
# OS2TK45 OS/2 header files
#
# expected filename: https://88watts.net/dlfile.php?F=Os2Tk45-
#
# OS/2 Developer's Toolkit v4.5 is available on David Azarewicz's 88watts.net
# *supposedly* with permission from IBM - or so Arca Noae (which David is
# involved with) claims on this page:
# https://www.arcanoae.com/wiki/information-for-developers/
# It is needed only for building the IBM TCP/IP 2.0 TCP/IP backend. The SDK
# for this is also available on the OS/2 Warp 4 CD.
#
runs:
using: composite
steps:
- name: Load Build Tools Cache
if: inputs.nocache != 'true'
uses: actions/cache@v4
id: cache-tools
with:
path: |
${{github.workspace}}/tools
${{github.workspace}}/info-zip/zip.exe
${{github.workspace}}/info-zip/unzip.exe
${{github.workspace}}/info-zip/os2
key: all-nasm+jom+info-zip+os2tk45
- run: mkdir -p tools
if: steps.cache-tools.outputs.cache-hit != 'true'
shell: bash
- name: Get and unpack nasm
if: steps.cache-tools.outputs.cache-hit != 'true'
run: |
curl -LsS -o nasm-2.15.05-win32.zip https://www.nasm.us/pub/nasm/releasebuilds/2.15.05/win32/nasm-2.15.05-win32.zip
7z x nasm-2.15.05-win32.zip -otools
rm -f nasm-2.15.05-win32.zip
mv tools/nasm-2.15.05 tools/nasm
echo "content of tools/nasm"
ls -l tools/nasm
shell: bash
- name: Get and unpack nasm
if: steps.cache-tools.outputs.cache-hit != 'true'
run: |
mkdir -p tools/jom
curl -LsS -o jom.zip https://download.qt.io/official_releases/jom/jom.zip
7z x jom.zip -otools/jom
rm -f jom.zip
echo "content of tools/jom"
ls -l tools/jom
shell: bash
- name: Get and unpack os2tk45
if: steps.cache-tools.outputs.cache-hit != 'true'
run: |
curl -LsS -o os2tk45.zip ${{env.OS2TK45}}
7z x os2tk45.zip
rm -f os2tk45.zip
mv toolkit/os2tk45 tools/os2tk45
mv tools/os2tk45/h tools/os2tk45/include
echo "content of tools/os2tk45"
ls -l tools/os2tk45
shell: bash
- name: Get and unpack Info-Zip
if: steps.cache-tools.outputs.cache-hit != 'true'
run: |
mkdir -p info-zip/os2
curl -LsS -o zip.zip ${{env.INFOZIP_FTP}}win32/zip300xn.zip
7z x zip.zip -oinfo-zip
rm -f zip.zip
curl -LsS -o unzip.zip ${{env.INFOZIP_FTP}}os2/unz600.exe
7z x unzip.zip -oinfo-zip/os2
rm -f unzip.zip
mv info-zip/os2/32-bit/* info-zip/os2/
echo "content of info-zip/os2"
ls -l info-zip/os2
echo "content of info-zip"
ls -l info-zip
shell: bash
51 changes: 51 additions & 0 deletions .github/actions/load-vs2003/action.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
name: load-vs2003-psdk2003-sp1
description: Load Visual Studio 2003/2005 Toolkit and PSDK 2003 SP1
inputs:
nocache:
description: 'skip cache'
default: ''
required: false
type: string
arch:
description: 'Architecture'
default: ''
required: false
type: string
#
# expected filename: https://ftp.zx.net.nz/pub/dev/VC2003Toolkit/VCT2003+PSDK2003+cvtres.7z
#
runs:
using: composite
steps:
- name: Load Cache VS2003
if: inputs.nocache != 'true'
uses: actions/cache@v4
id: cache-vs2003
with:
path: |
${{github.workspace}}\vs2003
key: all-vs2003+psdk2003sp1
- name: Get and unpack Visual C++ 2003 Toolkit and PSDK 2003 SP1
if: steps.cache-vs2003.outputs.cache-hit != 'true'
run: |
curl -LsS -o vs2003.7z https://ftp.zx.net.nz/pub/dev/VC2003Toolkit/VCT2003+PSDK2003+cvtres.7z
7z x vs2003.7z
rm -f vs2003.7z
mv "Microsoft Platform SDK 2003SP1" vs2003
rm -f vs2003\Bin\Cvtres.exe
echo "content of vs2003"
ls -l vs2003
shell: bash
- name: Setup build MSVC compiler Environment
run: |
rem add build MSVC compiler on the beginning of PATH
rem we need cvtres.exe from current MSVC compiler only
if "${{inputs.arch}}" == "x86" echo ${{github.workspace}}\vs2003\bin>> "%GITHUB_PATH%"
if "${{inputs.arch}}" == "ia64" echo ${{github.workspace}}\vs2003\bin\win64;${{github.workspace}}\vs2003\bin>> "%GITHUB_PATH%"
rem Don't want to pick up headers or libraries from current MSVC compiler
rem we override INCLUDE and LIB environment variables to point to build MSVC compiler
echo INCLUDE=${{github.workspace}}\vs2003\include>> "%GITHUB_ENV%"
if "${{inputs.arch}}" == "x86" echo LIB=${{github.workspace}}\vs2003\lib;%LIB%>> "%GITHUB_ENV%"
if "${{inputs.arch}}" == "ia64" echo LIB=${{github.workspace}}\vs2003\lib\ia64>> "%GITHUB_ENV%"
shell: cmd

62 changes: 62 additions & 0 deletions .github/actions/load-vs2010/action.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,62 @@
name: load-vs2010-psdk71
description: Load Visual Studio 2010 Toolkit and PSDK 7.1
inputs:
nocache:
description: 'skip cache'
default: ''
required: false
type: string
arch:
description: 'Architecture'
default: ''
required: false
type: string
#
# expected filename: https://ftp.zx.net.nz/pub/dev/WinSDK/win7-7.1-dn4/win7-7.1-sdk-vc.7z
# expected filename: https://ftp.zx.net.nz/pub/dev/WinSDK/win7-7.1-dn4/win7-7.1-sdk-psdk.7z
# expected filename: http://download.microsoft.com/download/5/B/C/5BC5DBB3-652D-4DCE-B14A-475AB85EEF6E/vcredist_x86.exe
#
runs:
using: composite
steps:
- name: Load Cache VS2010
if: inputs.nocache != 'true'
uses: actions/cache@v4
id: cache-vs2010
with:
path: |
${{github.workspace}}\Microsoft SDKs
${{github.workspace}}\Microsoft Visual Studio 10.0
${{github.workspace}}\vc10.cmd
${{github.workspace}}\vs2010
key: all-vs2010-psdk71-redist
- name: Get and unpack Visual C++ 2010 Toolkit
if: steps.cache-vs2010.outputs.cache-hit != 'true'
run: |
curl -LsS -o win7-7.1-sdk-vc.7z https://ftp.zx.net.nz/pub/dev/WinSDK/win7-7.1-dn4/win7-7.1-sdk-vc.7z
7z x win7-7.1-sdk-vc.7z
rm -f win7-7.1-sdk-vc.7z
echo "content of Microsoft Visual Studio 10.0"
ls -l "Microsoft Visual Studio 10.0"
shell: bash
- name: Get and unpack Windows 7 Platform SDK 7.1
if: steps.cache-vs2010.outputs.cache-hit != 'true'
run: |
curl -LsS -o win7-7.1-sdk-psdk.7z https://ftp.zx.net.nz/pub/dev/WinSDK/win7-7.1-dn4/win7-7.1-sdk-psdk.7z
7z x win7-7.1-sdk-psdk.7z
rm -f win7-7.1-sdk-psdk.7z
echo "content of Microsoft SDKs"
ls -l "Microsoft SDKs"
shell: bash
- name: Get Visual C++ 2010 runtime
if: steps.cache-vs2010.outputs.cache-hit != 'true'
run: |
mkdir -p vs2010
curl -LsS -o vs2010/vcredist_x86.exe http://download.microsoft.com/download/5/B/C/5BC5DBB3-652D-4DCE-B14A-475AB85EEF6E/vcredist_x86.exe
echo "content of vs2010"
ls -l vs2010
shell: bash
- name: Install the VS2010 runtime
working-directory: ${{github.workspace}}
run: vs2010\vcredist_x86.exe /q /norestart
shell: cmd
73 changes: 73 additions & 0 deletions .github/actions/load-watcom/action.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,73 @@
name: load-open-watcom
description: Load Open Watcom
inputs:
nocache:
description: 'skip cache'
default: ''
required: false
type: string
ver:
description: 'version'
default: ''
required: false
type: string
id:
description: 'Identification'
default: ''
required: false
type: string
#
# Open Watcom 1.9
# expected filename: https://github.com/open-watcom/open-watcom-1.9/releases/download/ow1.9/open-watcom-c-linux-1.9
#
# Open Watcom 2.0
# expected filename: https://github.com/open-watcom/open-watcom-v2/releases/download/Current-build/ow-snapshot.tar.xz
#
runs:
using: composite
steps:
- name: Load Cache VS2003
if: inputs.nocache != 'true'
uses: actions/cache@v4
id: cache-ow
with:
path: |
${{github.workspace}}\watcom
key: all-open-watcom-${{inputs.ver}}
- name: Get and unpack Open Watcom
if: steps.cache-ow.outputs.cache-hit != 'true'
run: |
mkdir -p watcom
if [[ "${{inputs.ver}}" = "2.0" ]]; then
curl -LsS -o ow-snapshot.tar.xz https://github.com/open-watcom/open-watcom-v2/releases/download/Current-build/ow-snapshot.tar.xz
7z x ow-snapshot.tar.xz
7z x ow-snapshot.tar -owatcom
rm -f ow-snapshot.tar.xz ow-snapshot.tar
else
curl -LsS -o ow.zip https://github.com/open-watcom/open-watcom-1.9/releases/download/ow1.9/open-watcom-c-linux-1.9
7z x ow.zip -owatcom
rm -f ow.zip
fi
echo "content of watcom"
ls -l watcom
shell: bash
- name: Setup Open Watcom Environment
run: |
if [[ "${{runner.os}}" = "Windows" ]]; then
X=\\
else
X=/
fi
echo "WATCOM=${{github.workspace}}${X}watcom">> "$GITHUB_ENV"
echo "${{github.workspace}}${X}watcom${X}binw">> "$GITHUB_PATH"
if [[ "${{runner.os}}" = "Windows" ]]; then
echo "${{github.workspace}}${X}watcom${X}binnt">> "$GITHUB_PATH"
else
echo "${{github.workspace}}${X}watcom${X}binl">> "$GITHUB_PATH"
fi
if [[ "${{inputs.id}}" = "os2" ]]; then
echo "INCLUDE=${{github.workspace}}${X}watcom${X}h;${{github.workspace}}${X}watcom${X}h${X}os2">> "$GITHUB_ENV"
else
echo "INCLUDE=${{github.workspace}}${X}watcom${X}h;${{github.workspace}}${X}watcom${X}h${X}nt">> "$GITHUB_ENV"
fi
shell: bash
Loading

0 comments on commit 0fc407b

Please sign in to comment.