1
0
mirror of https://github.com/open-simh/simh.git synced 2026-01-11 23:53:30 +00:00
B. Scott Michel 7adffe5794 Github CI/CD updates
- Nuke and reinstall HomeBrew for macOS builds. Gets around the whole
  problem of stale links and conflicting packages installed in the GitHub
  macOS images.

- macOS 12 and Ubuntu 20.04 officially deprecated. Ubuntu 20.04 will be
  removed from GitHub's runner images on 01 APR 2025.

- .travis/deps.sh: Add mingw32 as a dependency target, enable MinGW64
  32-bit builds.

- Work around LTO bug on Ubuntu and macOS compilers, where LTO appears
  to miscalculate the number of bytes stored when using the default byte
  swapping 'for' loop. This is a workaround that uses compiler swapping
  intrinsics for well known sizes that appeases LTO. The alternative is
  to wait for a compiler fix, which is infeasible.
2025-08-17 15:32:19 -04:00

66 lines
2.3 KiB
YAML

name: Build
on:
pull_request:
push:
branches:
- '*'
tags:
- '!v*'
defaults:
run:
shell: bash
jobs:
cmake-builds:
uses: ./.github/workflows/cmake-builds.yml
makefile:
runs-on: ${{ matrix.os }}
strategy:
#-
# The makefile builds DO NOT produce artifacts (*). Using the "-latest"
# runner images is sufficient.
#
# (*) "artefact" for the rest of the Anglosphere
#-
matrix:
os: [macos-latest, ubuntu-latest]
simulators:
# These are supposed to match ALL in makefile.
# Each job builds ~15 simulators.
- pdp1 pdp4 pdp6 pdp7 pdp8 pdp9 pdp10 pdp10-ka pdp10-ki pdp10-kl pdp10-ks pdp11 pdp15 vax
- microvax2 vax730 vax750 vax780 vax8200 vax8600 microvax2000 infoserver100 infoserver150vxt microvax3100 microvax3100e vaxstation3100m30 vaxstation3100m38
- microvax3100m80 vaxstation4000vlc infoserver1000 nova eclipse hp2100 hp3000 i1401 i1620 s3 altair altairz80 gri i7094
- id16 id32 sds lgp h316 cdc1700 swtp6800mp-a swtp6800mp-a2 tx-0 ssem b5500 sage pdq3 alpha
- besm6 imlac tt2500 microvax3900 microvax1 rtvax1000 vaxstation3100m76 vaxstation4000m60
- scelbi 3b2 i701 i704 i7010 i7070 i7080 i7090 sigma uc15 i650 sel32 intel-mds ibm1130
steps:
- uses: actions/checkout@v4
## Nuke homebrew and start with a clean instance:
- name: Reinstall HomeBrew (macOS)
if: ${{runner.os == 'macOS'}}
run: |
/usr/bin/sudo /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/uninstall.sh)"
[ -d /opt/homebrew ] && ( sudo rm -rf /opt/homebrew/* || true )
[ -d /usr/local ] && ( sudo rm -rf /usr/local/* || true )
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)"
## Install our regular dependencies.
- name: Install dependencies (macOS)
if: ${{runner.os == 'macOS'}}
run: |
sh -ex .travis/deps.sh osx
- name: Install dependencies (Linux)
if: ${{runner.os == 'Linux'}}
run: sh -ex .travis/deps.sh linux
- name: makefile build
env:
SIM: ${{matrix.simulators}}
run: make LTO=1 OPTIMIZE=-O3 $SIM