CI improvements. #107
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Build and test library | |
on: | |
push: | |
paths: | |
- '.github/workflows/build-and-test-library.yml' | |
- 'API/**' | |
- 'CMake/FindZeta.cmake' | |
- 'sources/test-Z80.c' | |
- 'sources/Z80.c' | |
- 'sources/Z80.rc.in' | |
- 'support/*.sha3-512' | |
- 'CMakeLists.txt' | |
pull_request: | |
paths: | |
- '.github/workflows/build-and-test-library.yml' | |
- 'API/**' | |
- 'CMake/FindZeta.cmake' | |
- 'sources/test-Z80.c' | |
- 'sources/Z80.c' | |
- 'sources/Z80.rc.in' | |
- 'support/*.sha3-512' | |
- 'CMakeLists.txt' | |
env: | |
ZETA_TARBALL_URL: 'http://zxe.io/software/Zeta/download/Zeta-latest.tar.xz' | |
BUILD_SHARED_LIBS: YES | |
CMAKE_BUILD_TYPE: Release | |
Z80_FETCH_TEST_FILES: YES | |
Z80_NOSTDLIB_FLAGS: Auto | |
Z80_WITH_CMAKE_SUPPORT: YES | |
Z80_WITH_HTML_DOCUMENTATION: NO | |
Z80_WITH_PDF_DOCUMENTATION: NO | |
Z80_WITH_PKGCONFIG_SUPPORT: YES | |
Z80_WITH_STANDARD_DOCUMENTS: NO | |
Z80_WITH_STEP_TESTS: NO | |
Z80_WITH_TESTS: YES | |
Z80_WITH_EXECUTE: YES | |
Z80_WITH_FULL_IM0: YES | |
Z80_WITH_IM0_RETX_NOTIFICATIONS: YES | |
Z80_WITH_Q: YES | |
Z80_WITH_SPECIAL_RESET: YES | |
Z80_WITH_UNOFFICIAL_RETI: NO | |
Z80_WITH_ZILOG_NMOS_LD_A_IR_BUG: YES | |
jobs: | |
build-and-test-library: | |
runs-on: ${{ matrix.os }} | |
strategy: | |
matrix: | |
os: [macos-latest, ubuntu-latest, windows-latest] | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Install dependencies (POSIX) | |
if: startsWith(matrix.os, 'macos') || startsWith(matrix.os, 'ubuntu') | |
run: | | |
mkdir -p "${{ github.workspace }}/build" | |
curl -L "${{ env.ZETA_TARBALL_URL }}" | xz -cd | tar -C "${{ github.workspace }}/build" --strip-components=2 -xf - Zeta/API/Z | |
- name: Install dependencies (Windows) | |
if: startsWith(matrix.os, 'windows') | |
shell: cmd | |
run: | | |
mkdir "${{ github.workspace }}\build" | |
curl -L "${{ env.ZETA_TARBALL_URL }}" | 7z x -txz -si -so | 7z x -si -ttar -o"${{ github.workspace }}\build" Zeta/API/Z | |
- name: Configure CMake | |
run: >- | |
cmake | |
-DBUILD_SHARED_LIBS=${{ env.BUILD_SHARED_LIBS }} | |
-DCMAKE_BUILD_TYPE=${{ env.CMAKE_BUILD_TYPE }} | |
-DZ80_FETCH_TEST_FILES=${{ env.Z80_FETCH_TEST_FILES }} | |
-DZ80_NOSTDLIB_FLAGS=${{ env.Z80_NOSTDLIB_FLAGS }} | |
-DZ80_WITH_CMAKE_SUPPORT=${{ env.Z80_WITH_CMAKE_SUPPORT }} | |
-DZ80_WITH_HTML_DOCUMENTATION=${{ env.Z80_WITH_HTML_DOCUMENTATION }} | |
-DZ80_WITH_PDF_DOCUMENTATION=${{ env.Z80_WITH_PDF_DOCUMENTATION }} | |
-DZ80_WITH_PKGCONFIG_SUPPORT=${{ env.Z80_WITH_PKGCONFIG_SUPPORT }} | |
-DZ80_WITH_STANDARD_DOCUMENTS=${{ env.Z80_WITH_STANDARD_DOCUMENTS }} | |
-DZ80_WITH_STEP_TESTS=${{ env.Z80_WITH_STEP_TESTS }} | |
-DZ80_WITH_TESTS=${{ env.Z80_WITH_TESTS }} | |
-DZ80_WITH_EXECUTE=${{ env.Z80_WITH_EXECUTE }} | |
-DZ80_WITH_FULL_IM0=${{ env.Z80_WITH_FULL_IM0 }} | |
-DZ80_WITH_IM0_RETX_NOTIFICATIONS=${{ env.Z80_WITH_IM0_RETX_NOTIFICATIONS }} | |
-DZ80_WITH_Q=${{ env.Z80_WITH_Q }} | |
-DZ80_WITH_SPECIAL_RESET=${{ env.Z80_WITH_SPECIAL_RESET }} | |
-DZ80_WITH_UNOFFICIAL_RETI=${{ env.Z80_WITH_UNOFFICIAL_RETI }} | |
-DZ80_WITH_ZILOG_NMOS_LD_A_IR_BUG=${{ env.Z80_WITH_ZILOG_NMOS_LD_A_IR_BUG }} | |
-B "${{ github.workspace }}/build" | |
-S "${{ github.workspace }}" | |
- name: Build | |
run: cmake --build "${{ github.workspace }}/build" --config ${{ env.CMAKE_BUILD_TYPE }} --verbose | |
- name: Test | |
working-directory: ${{ github.workspace }}/build | |
run: ctest --build-config ${{ env.CMAKE_BUILD_TYPE }} --output-on-failure |