qt: track Q, MC, IRQ panel LEDs status #121
Workflow file for this run
This file contains hidden or 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: CI | |
| on: | |
| push: | |
| branches: [master, em400-next] | |
| pull_request: | |
| branches: [master] | |
| jobs: | |
| Linux-build: | |
| name: build on ${{matrix.os}} with ${{matrix.compiler.compiler}} | |
| runs-on: ${{matrix.os}} | |
| strategy: | |
| matrix: | |
| os: [ ubuntu-latest ] | |
| compiler: | |
| - { compiler: GCC, CC: gcc, CXX: g++ } | |
| - { compiler: CLANG, CC: clang, CXX: clang++ } | |
| env: | |
| BUILD_TYPE: Release | |
| CC: ${{matrix.compiler.CC}} | |
| CXX: ${{matrix.compiler.CXX}} | |
| steps: | |
| - uses: actions/checkout@v7 | |
| - name: Update repositories | |
| run: sudo apt-get update | |
| - name: Build and install emawp | |
| run: git clone https://github.com/jakubfi/emawp && cd emawp && mkdir build && cd build && cmake .. && make && sudo make install && sudo ldconfig | |
| - name: Build and install emcrk | |
| run: git clone https://github.com/jakubfi/emcrk && cd emcrk && mkdir build && cd build && cmake .. && make && sudo make install && sudo ldconfig | |
| - name: Build and install emdas | |
| run: git clone https://github.com/jakubfi/emdas && cd emdas && mkdir build && cd build && cmake .. && make && sudo make install && sudo ldconfig | |
| - name: Build and install emas | |
| run: git clone https://github.com/jakubfi/emas && cd emas && mkdir build && cd build && cmake .. && make && sudo make install | |
| - name: Install dependencies | |
| run: sudo apt install libpulse0 libpulse-dev libasound2t64 libasound2-dev flex libfl-dev bison libbison-dev readline-common libreadline-dev libpulse-dev libasound2-dev qtbase5-dev qtmultimedia5-dev libuv1-dev | |
| - name: Configure project | |
| run: cmake -B ${{github.workspace}}/build -DCMAKE_BUILD_TYPE=${{env.BUILD_TYPE}} | |
| - name: Build | |
| run: cmake --build ${{github.workspace}}/build --config ${{env.BUILD_TYPE}} | |
| - name: Install | |
| run: sudo cmake --install ${{github.workspace}}/build | |
| - name: First run creates default config | |
| env: | |
| XDG_CONFIG_HOME: ${{runner.temp}}/em400-cfg | |
| run: | | |
| CONFIG="$XDG_CONFIG_HOME/em400/em400.ini" | |
| echo quit | timeout 60 em400 -u cmd | |
| test -f "$CONFIG" || { echo "default config was not created at $CONFIG"; exit 1; } | |
| - name: Default machines start | |
| env: | |
| XDG_CONFIG_HOME: ${{runner.temp}}/em400-cfg | |
| run: | | |
| for m in mera400 mx16; do | |
| echo "booting machine: $m" | |
| echo quit | timeout 60 em400 -u cmd -m "$m" || { echo "machine $m failed to run"; exit 1; } | |
| done | |
| - name: Prepare test disk images | |
| working-directory: ${{github.workspace}}/tests | |
| run: cd images && make | |
| - name: Run tests (speed max) | |
| working-directory: ${{github.workspace}}/tests | |
| run: ./runtests.py | |
| - name: Run tests (timing all) | |
| working-directory: ${{github.workspace}}/tests | |
| run: ./runtests.py -O general:timing=all | |
| Win64-build: | |
| name: Win64 build | |
| runs-on: windows-latest | |
| defaults: | |
| run: | |
| shell: msys2 {0} | |
| env: | |
| BUILD_TYPE: Release | |
| CC: gcc | |
| CXX: g++ | |
| INSTALL_PREFIX: /mingw64 | |
| steps: | |
| - uses: msys2/setup-msys2@v2 | |
| with: | |
| msystem: MINGW64 | |
| update: true | |
| install: >- | |
| base-devel | |
| git | |
| mingw-w64-x86_64-toolchain | |
| mingw-w64-x86_64-cmake | |
| mingw-w64-x86_64-libuv | |
| mingw-w64-x86_64-qt6-base | |
| mingw-w64-x86_64-qt6-multimedia | |
| mingw-w64-x86_64-qt6-multimedia-wmf | |
| mingw-w64-x86_64-qt6-tools | |
| python | |
| - uses: actions/checkout@v7 | |
| with: | |
| fetch-depth: 0 # so `git describe --tags` resolves the version | |
| - name: Build and install emawp | |
| run: git clone https://github.com/jakubfi/emawp && cmake -S emawp -B emawp/build -G "Unix Makefiles" -DCMAKE_BUILD_TYPE=${{env.BUILD_TYPE}} -DCMAKE_INSTALL_PREFIX=${{env.INSTALL_PREFIX}} && cmake --build emawp/build && cmake --install emawp/build | |
| - name: Build and install emcrk | |
| run: git clone https://github.com/jakubfi/emcrk && cmake -S emcrk -B emcrk/build -G "Unix Makefiles" -DCMAKE_BUILD_TYPE=${{env.BUILD_TYPE}} -DCMAKE_INSTALL_PREFIX=${{env.INSTALL_PREFIX}} && cmake --build emcrk/build && cmake --install emcrk/build | |
| - name: Build and install emdas | |
| run: git clone https://github.com/jakubfi/emdas && cmake -S emdas -B emdas/build -G "Unix Makefiles" -DCMAKE_BUILD_TYPE=${{env.BUILD_TYPE}} -DCMAKE_INSTALL_PREFIX=${{env.INSTALL_PREFIX}} && cmake --build emdas/build && cmake --install emdas/build | |
| - name: Build and install emas | |
| run: git clone https://github.com/jakubfi/emas && cmake -S emas -B emas/build -G "Unix Makefiles" -DCMAKE_BUILD_TYPE=${{env.BUILD_TYPE}} -DCMAKE_INSTALL_PREFIX=${{env.INSTALL_PREFIX}} && cmake --build emas/build && cmake --install emas/build | |
| - name: Configure project | |
| run: cmake -S . -B build -G "Unix Makefiles" -DCMAKE_BUILD_TYPE=${{env.BUILD_TYPE}} -DCMAKE_INSTALL_PREFIX=${{env.INSTALL_PREFIX}} | |
| - name: Build | |
| run: cmake --build build | |
| - name: First run creates default config | |
| run: | | |
| export APPDATA="$(cygpath -w "$PWD/em400-cfg")" | |
| CONFIG="$PWD/em400-cfg/em400/em400.ini" | |
| echo quit | timeout 60 ./build/em400 -u cmd | |
| test -f "$CONFIG" || { echo "default config was not created at $CONFIG"; exit 1; } | |
| - name: Default machines start | |
| run: | | |
| export APPDATA="$(cygpath -w "$PWD/em400-cfg")" | |
| for m in mera400 mx16; do | |
| echo "booting machine: $m" | |
| echo quit | timeout 60 ./build/em400 -u cmd -m "$m" || { echo "machine $m failed to run"; exit 1; } | |
| done | |
| - name: Prepare test disk images | |
| run: cd tests/images && make | |
| - name: Run tests (speed max) | |
| run: cd tests && ./runtests.py | |
| - name: Run tests (timing all) | |
| run: cd tests && ./runtests.py -O general:timing=all |