Retro68/azure-pipelines.yml

160 lines
5.1 KiB
YAML
Raw Normal View History

2019-09-27 21:06:18 +00:00
trigger:
- master
2022-01-03 20:51:35 +00:00
2019-09-27 21:06:18 +00:00
jobs:
2023-12-28 21:26:23 +00:00
- 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:
2023-12-29 00:36:28 +00:00
vmImage: 'macOS-13'
2023-12-28 21:26:23 +00:00
timeoutInMinutes: 90
steps:
- checkout: self
submodules: true
- script: |
2023-12-29 13:42:53 +00:00
brew install boost cmake gmp mpfr libmpc bison texinfo
2023-12-28 21:26:23 +00:00
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: |
2023-12-26 22:37:56 +00:00
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: |
2023-12-26 22:33:00 +00:00
. /nix/var/nix/profiles/default/etc/profile.d/nix-daemon.sh
2023-12-26 22:28:47 +00:00
nix profile install --accept-flake-config nixpkgs#cachix
cachix use autc04
displayName: Setup Cachix
2023-12-26 22:26:45 +00:00
- checkout: self
submodules: false
- script: |
2023-12-26 22:33:00 +00:00
. /nix/var/nix/profiles/default/etc/profile.d/nix-daemon.sh
nix develop .#${TARGET} --profile dev-profile -c true
2023-12-26 22:52:27 +00:00
nix build .#samples-${TARGET} --out-link CompiledSamples
displayName: Build
- publish: CompiledSamples
artifact: Samples ($(TARGET))
- script: |
2023-12-26 22:33:00 +00:00
. /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'
2024-05-01 21:31:10 +00:00
timeoutInMinutes: 90
steps:
- script: |
2023-12-26 22:37:56 +00:00
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: |
2023-12-26 22:33:00 +00:00
. /nix/var/nix/profiles/default/etc/profile.d/nix-daemon.sh
2023-12-26 22:28:47 +00:00
nix profile install --accept-flake-config nixpkgs#cachix
cachix use autc04
displayName: Setup Cachix
2023-12-26 22:26:45 +00:00
- checkout: self
submodules: false
- script: |
2023-12-26 22:33:00 +00:00
. /nix/var/nix/profiles/default/etc/profile.d/nix-daemon.sh
nix develop .#${TARGET} --profile dev-profile -c true
2023-12-26 22:52:27 +00:00
nix build .#samples-${TARGET} --out-link CompiledSamples
displayName: Build
- script: |
2023-12-26 22:33:00 +00:00
. /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'], ''))