mirror of
https://github.com/autc04/Retro68.git
synced 2024-09-27 12:57:21 +00:00
3a4468b270
This has two main advantages: firstly it means that the Dockerfile is being tested as part of the pipeline when changes are merged into master, and secondly it allows testing of Linux builds without requiring a separate job for Docker that can consume even more CI minutes. In order to test the container image it is necessary to manually start the build image using docker run, execute the tests, and then copy the results back to the host ready for publishing. Note that since the base OS image is now handled by docker we can switch the host to use the 'ubuntu-latest' image rather than the older 'ubuntu-20.04' image.
38 lines
1.2 KiB
YAML
38 lines
1.2 KiB
YAML
trigger:
|
|
- master
|
|
|
|
jobs:
|
|
|
|
- job: Linux
|
|
pool:
|
|
vmImage: 'ubuntu-latest'
|
|
timeoutInMinutes: 90
|
|
steps:
|
|
- checkout: self
|
|
submodules: true
|
|
- task: Docker@2
|
|
inputs:
|
|
command: build
|
|
repository: ghcr.io/mcayland/retro68-build
|
|
tags: latest
|
|
arguments: --target build
|
|
displayName: 'Build'
|
|
- script: |
|
|
docker run --name retro68-build --rm -i -d ghcr.io/mcayland/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'
|