Skip to content

CI-build: add OW 1.9 #111

CI-build: add OW 1.9

CI-build: add OW 1.9 #111

Workflow file for this run

name: Makefile CI
on:
push:
branches: [ "main" ]
tags: [ "v*" ]
pull_request:
branches: [ "main" ]
workflow_dispatch:
jobs:
build:
strategy:
matrix:
ow:
- ver: '1.9'
id: '19'
makefile: 'ow19.mak'
- ver: '2.0'
id: '20'
makefile: 'ow20.mak'
host:
- image: 'ubuntu-latest'
title: 'Linux'
dirsep: ':'
- image: 'windows-latest'
title: 'Windows'
dirsep: ';'
- image: 'macos-13'
title: 'OSX (Intel)'
dirsep: ':'
suf: '-64'
- image: 'macos-14'
title: 'OSX (ARM)'
dirsep: ':'
suf: '-64'
exclude:
- { ow: { ver: '1.9' }, host: { suf: '-64' } }
name: ${{ matrix.host.title }} build host (${{ matrix.ow.ver }})
runs-on: ${{ matrix.host.image }}
steps:
- uses: actions/checkout@v4
- name: Open Watcom setup
uses: open-watcom/setup-watcom@v0
with:
version: ${{ matrix.ow.ver }}${{ matrix.host.suf }}
- name: Create build directories
run: |
mkdir bin
mkdir lib
mkdir include
shell: bash
- name: Build Open Zinc library
run: |
wmake -f ${{ matrix.ow.makefile }} -h dos32
wmake -f ${{ matrix.ow.makefile }} -h windows
wmake -f ${{ matrix.ow.makefile }} -h winnt
wmake -f ${{ matrix.ow.makefile }} -h win32
wmake -f ${{ matrix.ow.makefile }} -h os2
shell: bash
working-directory: source
env:
DOS_INCLUDE: ${{ env.WATCOM }}/h
WINDOWS_INCLUDE: ${{ env.WATCOM }}/h${{ matrix.host.dirsep }}${{ env.WATCOM }}/h/win
NT_INCLUDE: ${{ env.WATCOM }}/h${{ matrix.host.dirsep }}${{ env.WATCOM }}/h/nt
OS2_INCLUDE: ${{ env.WATCOM }}/h${{ matrix.host.dirsep }}${{ env.WATCOM }}/h/os2
- name: Build Open Zinc Designer Libraries
run: |
wmake -f ${{ matrix.ow.makefile }} -h make_dos32_modules
wmake -f ${{ matrix.ow.makefile }} -h make_windows_modules
wmake -f ${{ matrix.ow.makefile }} -h make_winnt_modules
wmake -f ${{ matrix.ow.makefile }} -h make_win32_modules
wmake -f ${{ matrix.ow.makefile }} -h make_os2_modules
shell: bash
working-directory: design
env:
DOS_INCLUDE: ${{ env.WATCOM }}/h
WINDOWS_INCLUDE: ${{ env.WATCOM }}/h${{ matrix.host.dirsep }}${{ env.WATCOM }}/h/win
NT_INCLUDE: ${{ env.WATCOM }}/h${{ matrix.host.dirsep }}${{ env.WATCOM }}/h/nt
OS2_INCLUDE: ${{ env.WATCOM }}/h${{ matrix.host.dirsep }}${{ env.WATCOM }}/h/os2
- name: Build Open Zinc Designer Executables
run: |
wmake -f ${{ matrix.ow.makefile }} -h dos32
wmake -f ${{ matrix.ow.makefile }} -h windows
wmake -f ${{ matrix.ow.makefile }} -h winnt
wmake -f ${{ matrix.ow.makefile }} -h win32
wmake -f ${{ matrix.ow.makefile }} -h os2
shell: bash
working-directory: design
env:
DOS_INCLUDE: ${{ env.WATCOM }}/h
WINDOWS_INCLUDE: ${{ env.WATCOM }}/h${{ matrix.host.dirsep }}${{ env.WATCOM }}/h/win
NT_INCLUDE: ${{ env.WATCOM }}/h${{ matrix.host.dirsep }}${{ env.WATCOM }}/h/nt
OS2_INCLUDE: ${{ env.WATCOM }}/h${{ matrix.host.dirsep }}${{ env.WATCOM }}/h/os2
- name: Zip files
run: |
7z
if ($env:RUNNER_OS -eq "Windows") {
7z a openzinc.zip bin lib include
} else {
zip -r openzinc.zip bin lib include
}
shell: pwsh
- name: Upload build artifact
uses: actions/upload-artifact@v4
with:
name: 'ow${{ matrix.ow.ver }}-${{ matrix.host.image }}-snapshot'
path: openzinc.zip
overwrite: true
release:
if: github.event_name == 'push' && startsWith(github.ref, 'refs/tags/v')
needs: build
runs-on: 'ubuntu-latest'
steps:
- run: mkdir -p release
shell: bash
- name: Download build artifact
uses: actions/download-artifact@v4
with:
name: 'ow1.9-ubuntu-latest-snapshot'
- run: |
7z x openzinc.zip -y -orelease
rm -f openzinc.zip
shell: bash
- name: Download build artifact
uses: actions/download-artifact@v4
with:
name: 'ow2.0-ubuntu-latest-snapshot'
- run: |
7z x openzinc.zip -y -orelease
rm -f openzinc.zip
shell: bash
- run: |
cd release
7z a openzinc.zip bin lib include
mv openzinc.zip ..
cd ..
shell: bash
- name: Create release
run: |
gh release create "$tag" \
--repo="$GITHUB_REPOSITORY" \
--title="${tag#v}" \
--generate-notes \
openzinc.zip
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
tag: ${{ github.ref_name }}