mirror of
https://github.com/autc04/Retro68.git
synced 2024-11-28 21:49:33 +00:00
e03a4d2344
The macOS 10.15 environment is scheduled for removal by December and is subject to periodic scheduled brownouts until then.
149 lines
4.5 KiB
YAML
149 lines
4.5 KiB
YAML
trigger:
|
|
- master
|
|
|
|
jobs:
|
|
|
|
- job: Linux
|
|
pool:
|
|
vmImage: 'ubuntu-20.04'
|
|
timeoutInMinutes: 90
|
|
steps:
|
|
- checkout: self
|
|
submodules: true
|
|
- script: |
|
|
sudo apt-get update
|
|
DEBIAN_FRONTEND=noninteractive sudo apt-get install -y \
|
|
cmake libgmp-dev libmpfr-dev libmpc-dev \
|
|
libboost-all-dev bison texinfo \
|
|
ruby flex curl
|
|
displayName: 'Install prerequisites'
|
|
- script: |
|
|
mkdir build
|
|
cd build
|
|
../build-toolchain.bash
|
|
displayName: 'Build'
|
|
- script: |
|
|
cd build
|
|
curl -L -O https://github.com/autc04/executor/releases/download/v0.1.0/Executor2000-0.1.0-Linux.tar.bz2
|
|
tar xfvj Executor2000-0.1.0-Linux.tar.bz2 Executor2000-0.1.0-Linux/bin/executor-headless
|
|
echo "executor-path=`pwd`/Executor2000-0.1.0-Linux/bin/executor-headless" > ~/.LaunchAPPL.cfg
|
|
echo "emulator=executor" >> ~/.LaunchAPPL.cfg
|
|
ctest --no-compress-output -T test -E Carbon || true
|
|
displayName: Run Tests using Executor 2000
|
|
- task: PublishTestResults@2
|
|
inputs:
|
|
testResultsFormat: 'CTest'
|
|
testResultsFiles: build/Testing/**/*.xml
|
|
buildPlatform: 'x86_64-linux'
|
|
|
|
- job: macOS
|
|
pool:
|
|
vmImage: 'macOS-11'
|
|
timeoutInMinutes: 90
|
|
steps:
|
|
- checkout: self
|
|
submodules: true
|
|
- script: |
|
|
brew install boost cmake gmp mpfr libmpc bison
|
|
displayName: 'Brew prerequisites'
|
|
- script: |
|
|
mkdir build
|
|
cd build
|
|
../build-toolchain.bash
|
|
displayName: Build
|
|
- script: |
|
|
cd build
|
|
curl -L -O https://github.com/autc04/executor/releases/download/v0.1.0/Executor2000-0.1.0-Darwin.tar.bz2
|
|
tar xfvj Executor2000-0.1.0-Darwin.tar.bz2 Executor2000-0.1.0-Darwin/bin/executor-headless
|
|
echo "executor-path=`pwd`/Executor2000-0.1.0-Darwin/bin/executor-headless" > ~/.LaunchAPPL.cfg
|
|
echo "emulator=executor" >> ~/.LaunchAPPL.cfg
|
|
ctest --no-compress-output -T test -E Carbon || true
|
|
displayName: Run Tests using Executor 2000
|
|
- task: PublishTestResults@2
|
|
inputs:
|
|
testResultsFormat: 'CTest'
|
|
testResultsFiles: build/Testing/**/*.xml
|
|
buildPlatform: 'x86_64-macos'
|
|
|
|
- job: NixLinux
|
|
strategy:
|
|
matrix:
|
|
M68K:
|
|
TARGET: m68k
|
|
PowerPC:
|
|
TARGET: powerpc
|
|
Carbon:
|
|
TARGET: carbon
|
|
maxParallel: 2
|
|
pool:
|
|
vmImage: 'ubuntu-20.04'
|
|
steps:
|
|
- checkout: self
|
|
submodules: true
|
|
- script: |
|
|
docker run -i --name nix -v`pwd`:/src nixos/nix:2.3.12 <<EOF
|
|
nix-env -iA cachix -f https://cachix.org/api/v1/install
|
|
cachix use autc04
|
|
nix-build src -A ${TARGET}.retro68.samples
|
|
EOF
|
|
displayName: Build inside nixos/nix docker
|
|
- script: |
|
|
mkdir CompiledSamples
|
|
cd CompiledSamples
|
|
docker cp -L nix:result - | tar x --strip-components 1
|
|
displayName: Copy result out of docker
|
|
|
|
- publish: CompiledSamples
|
|
artifact: Samples ($(TARGET))
|
|
- script: |
|
|
docker start nix -i <<EOF || true
|
|
set -e
|
|
export CACHIX_AUTH_TOKEN=$(CACHIX_AUTH_TOKEN)
|
|
cd src
|
|
nix-build -A ${TARGET}.retro68.samples | cachix push autc04
|
|
nix-shell -A ${TARGET} --command exit
|
|
nix-store -qR --include-outputs \$(nix-instantiate default.nix -A ${TARGET}) | cachix push autc04
|
|
EOF
|
|
displayName: Push to Cachix
|
|
condition: and(succeeded(), ne(variables['CACHIX_AUTH_TOKEN'], ''))
|
|
|
|
|
|
- job: NixMac
|
|
strategy:
|
|
matrix:
|
|
M68K:
|
|
TARGET: m68k
|
|
PowerPC:
|
|
TARGET: powerpc
|
|
Carbon:
|
|
TARGET: carbon
|
|
maxParallel: 2
|
|
pool:
|
|
vmImage: 'macOS-11'
|
|
steps:
|
|
- script: |
|
|
export NIX_EXTRA_CONF="trusted-users = root runner"
|
|
sh <(curl -L https://nixos.org/nix/install)
|
|
displayName: Install nix
|
|
- script: |
|
|
. /nix/var/nix/profiles/default/etc/profile.d/nix-daemon.sh
|
|
nix-env -iA cachix -f https://cachix.org/api/v1/install
|
|
cachix use autc04
|
|
displayName: setup cachix
|
|
|
|
- checkout: self
|
|
submodules: false
|
|
- script: |
|
|
. /nix/var/nix/profiles/default/etc/profile.d/nix-daemon.sh
|
|
nix-build -A $(TARGET).retro68.samples
|
|
displayName: build
|
|
- script: |
|
|
. /nix/var/nix/profiles/default/etc/profile.d/nix-daemon.sh
|
|
export CACHIX_AUTH_TOKEN=$(CACHIX_AUTH_TOKEN)
|
|
nix-build -A $(TARGET).retro68.samples | (cachix push autc04 || true)
|
|
nix-shell -A $(TARGET) --command exit
|
|
nix-store -qR --include-outputs `nix-instantiate default.nix -A $(TARGET)` | (cachix push autc04 || true)
|
|
displayName: Push to Cachix
|
|
condition: and(succeeded(), ne(variables['CACHIX_AUTH_TOKEN'], ''))
|
|
|