Skip to content

attempt to fix timer on windows #107

attempt to fix timer on windows

attempt to fix timer on windows #107

Workflow file for this run

name: CI
on:
push:
branches: [master, em400-next]
tags: ['release-*'] # tagged release -> attach the Windows installer
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
mingw-w64-x86_64-nsis
- uses: actions/checkout@v7
with:
fetch-depth: 0 # so `git describe --tags` resolves the installer 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: 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: Build installer
run: cd build && cpack
- name: Upload installer
uses: actions/upload-artifact@v7
with:
name: em400-windows-installer
path: build/em400-*-win64.exe
if-no-files-found: error
- name: Attach to release
if: startsWith(github.ref, 'refs/tags/release-')
uses: softprops/action-gh-release@v2
with:
files: build/em400-*-win64.exe