1
0
mirror of https://github.com/simh/simh.git synced 2026-01-11 23:52:58 +00:00

AppVeyor: Multi-Platform Parallel build with artifacts with no GitHub actions

This commit is contained in:
Mark Pizzolato 2023-07-04 21:04:56 -10:00
parent 183a3f926c
commit 329a0f815b
3 changed files with 49 additions and 76 deletions

View File

@ -1,67 +0,0 @@
name: Build
on: [pull_request, push]
defaults:
run:
shell: bash
jobs:
make-unix:
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [macos-12, ubuntu-20.04]
simulators:
# These are supposed to match ALL in makefile.
# Each job builds ~15 simulators.
- 3b2 3b2-700 alpha altair altairz80 b5500 besm6 cdc1700 eclipse gri h316 hp2100 hp3000
- i1401 i1620 i650 i701 i7010 i704 i7070 i7080 i7090 i7094 ibm1130 id16 id32 vaxstation4000m60 vaxstation4000vlc
- imlac infoserver100 infoserver1000 infoserver150vxt intel-mds lgp microvax1 microvax2 microvax2000 microvax3100 microvax3100e
- microvax3100m80 microvax3900 nd100 nova pdp1 pdp10 pdp10-ka pdp10-ki pdp10-kl pdp10-ks pdp11 pdp15 pdp4 pdp6 pdp7
- pdp8 pdp9 pdq3 rtvax1000 s3 sage scelbi sds sel32 sigma ssem swtp6800mp-a swtp6800mp-a2 tt2500 tx-0 uc15
- vax vax730 vax750 vax780 vax8200 vax8600 vaxstation3100m30 vaxstation3100m38 vaxstation3100m76
steps:
- uses: actions/checkout@v3
- name: Install dependencies
if: ${{runner.os == 'macOS'}}
run: sh -ex .travis/deps.sh osx
- name: Install dependencies
if: ${{runner.os == 'Linux'}}
run: sh -ex .travis/deps.sh linux
- name: Build
env:
SIM: ${{matrix.simulators}}
run: make LTO=1 OPTIMIZE=-O3 $SIM
make-vs2022xp:
name: VS 2022 XP-compatible
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [windows-latest]
steps:
- uses: actions/checkout@v3
- name: Install v141_xp (XP toolkit)
shell: powershell
run: |
$packageParams = @( "--productId", "Microsoft.VisualStudio.Product.Enterprise",
"--channelId", "VisualStudio.17.Release",
"--add", "Microsoft.VisualStudio.Component.VC.v141.x86.x64",
"--add", "Microsoft.VisualStudio.Component.WinXP",
"--no-includeRecommended",
"--includeOptional",
"--quiet",
"--locale en-US" ) -join " "
choco install visualstudio2022-workload-nativedesktop --package-parameters $packageParams
- name: vs2022-xp build and save XP runnable binaries in a Zip file
shell: cmd
run: '"Visual Studio Projects\build_simulators.cmd"'
- uses: actions/upload-artifact@v3
with:
name: Save Artifact ${{ env.ZIPPATH }}
path: ${{ env.ZIPPATH }}

View File

@ -1,6 +1,14 @@
image:
- Visual Studio 2015
- Ubuntu2004
- macos-monterey
platform:
- x86
matrix:
fast_finish: true
cache:
- ../windows-build
@ -11,15 +19,47 @@ skip_commits:
- '**/*.txt'
before_build:
"\"C:\\Program Files (x86)\\Microsoft Visual Studio 9.0\\VC\\vcvarsall.bat\""
- ps: |
$platform = uname -s
if ($platform -eq 'Linux') {
sudo apt-get update -yqqm
sudo apt-get install -ym gcc libpcap-dev libvdeplug-dev libpcre3-dev libedit-dev libsdl2-dev libpng-dev libsdl2-ttf-dev
} else {
if ($platform -eq 'Darwin') {
brew install vde pcre libedit sdl2 libpng zlib sdl2_ttf make
}
}
build_script:
- cmd: cd "Visual Studio Projects" & vcbuild /M%NUMBER_OF_PROCESSORS% /useenv /rebuild Simh.sln "Release|Win32"
- ps: mkdir C:\projects\simh\PACKAGES
- ps: $id_line = Select-String -Path 'C:\projects\simh\Visual Studio Projects\.git-commit-id.h' -Pattern 'SIM_GIT_COMMIT_ID'
- ps: $id_name_pos = $id_line.line.IndexOf("SIM_GIT_COMMIT_ID")
- ps: $id = $id_line.Line.SubString($id_name_pos + 18, 8)
- ps: $datetime = Get-Date -Format "yyyy-mm-dd_hh-mm-ss"
- ps: Compress-Archive -Path C:\projects\simh\BIN\NT\Win32-Release\*.exe -DestinationPath C:\projects\simh\PACKAGES\simh-4.0-Current--$datetime-$id.zip
- cmd: |
"C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\vcvarsall.bat"
cd "Visual Studio Projects" & vcbuild /M%NUMBER_OF_PROCESSORS% /useenv /rebuild Simh.sln "Release|Win32"
- ps: |
if ($isWindows) {
cd ..
mkdir PACKAGES
$platform = 'Windows'
$id_line = Select-String -Path 'Visual Studio Projects\.git-commit-id.h' -Pattern 'SIM_GIT_COMMIT_ID'
$id_name_pos = $id_line.line.IndexOf("SIM_GIT_COMMIT_ID")
$id = $id_line.Line.SubString($id_name_pos + 18, 8)
$datetime = Get-Date -Format "yyyy-mm-dd_hh-mm-ss"
Compress-Archive -Path BIN\NT\Win32-Release\*.exe -DestinationPath PACKAGES\simh-4.0-Current-$platform-$datetime-$id.zip
} else {
$platform = uname -s
if ($platform -eq 'Linux') {
$ncpus = nproc
$parallel = '-j' + $ncpus
} else {
$platform = 'macOS'
}
make QUIET=1 $parallel
mkdir PACKAGES
$id_line = Select-String -Path '.git-commit-id' -Pattern 'SIM_GIT_COMMIT_ID'
$id_name_pos = $id_line.line.IndexOf("SIM_GIT_COMMIT_ID")
$id = $id_line.Line.SubString($id_name_pos + 18, 8)
$datetime = Get-Date -Format "yyyy-mm-dd_hh-mm-ss"
Compress-Archive -Path BIN/* -DestinationPath PACKAGES/simh-4.0-Current-$platform-$datetime-$id.zip
}
artifacts:
- path: PACKAGES\*.zip

View File

@ -1579,7 +1579,7 @@ ifneq (,$(and $(findstring 3.,$(GNUMakeVERSION)),$(BUILD_SEPARATE)))
$(error of GNU make. A GNU make version 4 or later is required.)
endif
endif
MAKEIT = @$(MAKE) -f $(MAKEFILE_LIST) TARGET="$@" DEPS="$^"
MAKEIT = @+$(MAKE) -f $(MAKEFILE_LIST) TARGET="$@" DEPS="$^"
#
# Emulator source files and compile time options