mirror of
https://github.com/autc04/Retro68.git
synced 2024-11-25 14:34:29 +00:00
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-10.15'
|
|
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'], ''))
|
|
|