mirror of
https://github.com/autc04/Retro68.git
synced 2024-12-20 21:31:10 +00:00
160 lines
5.1 KiB
YAML
160 lines
5.1 KiB
YAML
trigger:
|
|
- master
|
|
|
|
jobs:
|
|
|
|
- job: Linux
|
|
pool:
|
|
vmImage: 'ubuntu-latest'
|
|
timeoutInMinutes: 90
|
|
variables:
|
|
- group: Tokens
|
|
steps:
|
|
- checkout: self
|
|
submodules: true
|
|
|
|
- task: Docker@2
|
|
inputs:
|
|
command: build
|
|
repository: ghcr.io/autc04/retro68-build
|
|
tags: latest
|
|
arguments: --target build
|
|
displayName: 'Build'
|
|
- task: Docker@2
|
|
inputs:
|
|
command: build
|
|
repository: ghcr.io/autc04/retro68
|
|
tags: latest
|
|
arguments: --target release
|
|
displayName: 'Build release'
|
|
- script: |
|
|
docker run --name retro68-build --rm -i -d ghcr.io/autc04/retro68-build:latest
|
|
docker exec -i retro68-build /bin/bash <<"EOF"
|
|
cd /Retro68-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
|
|
EOF
|
|
mkdir build && docker cp retro68-build:/Retro68-build/Testing build
|
|
docker stop retro68-build
|
|
displayName: Run Tests using Executor 2000
|
|
- task: PublishTestResults@2
|
|
inputs:
|
|
testResultsFormat: 'CTest'
|
|
testResultsFiles: build/Testing/**/*.xml
|
|
buildPlatform: 'x86_64-linux'
|
|
- script: |
|
|
docker login ghcr.io/autc04 -u autc04 -p $GHCR_TOKEN
|
|
docker push ghcr.io/autc04/retro68
|
|
env:
|
|
GHCR_TOKEN: $(GHCR_TOKEN)
|
|
displayName: 'Push release to GHCR'
|
|
condition: and(succeeded(), eq(variables['Build.SourceBranch'], 'refs/heads/master'))
|
|
|
|
- job: macOS
|
|
pool:
|
|
vmImage: 'macOS-13'
|
|
timeoutInMinutes: 90
|
|
steps:
|
|
- checkout: self
|
|
submodules: true
|
|
- script: |
|
|
brew install boost cmake gmp mpfr libmpc bison texinfo
|
|
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
|
|
pool:
|
|
vmImage: 'ubuntu-latest'
|
|
steps:
|
|
- script: |
|
|
curl --proto '=https' --tlsv1.2 -sSf -L https://install.determinate.systems/nix \
|
|
| sh -s -- install --no-confirm --extra-conf "trusted-users = root vsts"
|
|
displayName: Install Nix
|
|
- script: |
|
|
. /nix/var/nix/profiles/default/etc/profile.d/nix-daemon.sh
|
|
nix profile install --accept-flake-config nixpkgs#cachix
|
|
cachix use autc04
|
|
displayName: Setup Cachix
|
|
- checkout: self
|
|
submodules: false
|
|
- script: |
|
|
. /nix/var/nix/profiles/default/etc/profile.d/nix-daemon.sh
|
|
nix develop .#${TARGET} --profile dev-profile -c true
|
|
nix build .#samples-${TARGET} --out-link CompiledSamples
|
|
displayName: Build
|
|
- publish: CompiledSamples
|
|
artifact: Samples ($(TARGET))
|
|
- script: |
|
|
. /nix/var/nix/profiles/default/etc/profile.d/nix-daemon.sh
|
|
export CACHIX_AUTH_TOKEN=$(CACHIX_AUTH_TOKEN)
|
|
cachix push autc04 dev-profile
|
|
cachix push autc04 CompiledSamples
|
|
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
|
|
pool:
|
|
vmImage: 'macOS-latest'
|
|
timeoutInMinutes: 90
|
|
steps:
|
|
- script: |
|
|
curl --proto '=https' --tlsv1.2 -sSf -L https://install.determinate.systems/nix \
|
|
| sh -s -- install --no-confirm --extra-conf "trusted-users = root runner"
|
|
displayName: Install Nix
|
|
- script: |
|
|
. /nix/var/nix/profiles/default/etc/profile.d/nix-daemon.sh
|
|
nix profile install --accept-flake-config nixpkgs#cachix
|
|
cachix use autc04
|
|
displayName: Setup Cachix
|
|
- checkout: self
|
|
submodules: false
|
|
- script: |
|
|
. /nix/var/nix/profiles/default/etc/profile.d/nix-daemon.sh
|
|
nix develop .#${TARGET} --profile dev-profile -c true
|
|
nix build .#samples-${TARGET} --out-link CompiledSamples
|
|
displayName: Build
|
|
- script: |
|
|
. /nix/var/nix/profiles/default/etc/profile.d/nix-daemon.sh
|
|
export CACHIX_AUTH_TOKEN=$(CACHIX_AUTH_TOKEN)
|
|
cachix push autc04 dev-profile
|
|
cachix push autc04 CompiledSamples
|
|
displayName: Push to Cachix
|
|
condition: and(succeeded(), ne(variables['CACHIX_AUTH_TOKEN'], ''))
|