Skip to content

Implement a LaserWriter IISC printer emulation #949

Implement a LaserWriter IISC printer emulation

Implement a LaserWriter IISC printer emulation #949

Workflow file for this run

name: Build - Windows
on:
push:
branches: [ "master" ]
paths-ignore:
- 'README.md'
- 'docs/**'
pull_request:
branches: [ "master" ]
paths-ignore:
- 'README.md'
- 'docs/**'
env:
CARGO_TERM_COLOR: always
# Workaround for 'the SSL certificate is invalid; class=Ssl (16)'
CARGO_NET_GIT_FETCH_WITH_CLI: true
CARGO_PROFILE_RELEASE_LTO: fat
jobs:
build:
runs-on: ${{ matrix.msystem == 'MINGW64' && 'windows-2022' || 'windows-11-arm' }}
defaults:
run:
shell: msys2 {0}
strategy:
matrix:
msystem: ['MINGW64', 'CLANGARM64']
steps:
- name: Checkout
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
- name: Setup MSYS2
uses: msys2/setup-msys2@4f806de0a5a7294ffabaff804b38a9b435a73bda # v2.30.0
with:
release: true
update: true
msystem: ${{ matrix.msystem }}
cache: true
install: >-
git
pacboy: >-
rust:p
pkg-config:p
# TODO use pinned toolchain
- name: Enable Rust compiler cache
uses: Swatinem/rust-cache@c19371144df3bb44fab255c43d04cbc2ab54d1c4 # v2.9.1
- name: Build release
run: |
export RUSTFLAGS="-C target-feature=+crt-static"
cargo build --verbose --release --all
- name: GUI Create packaging directory
run: mkdir snow-gui
- name: GUI Gather files
run: cp 'target/release/snowemu.exe' snow-gui/
- name: Architecture Friendly Name
id: arch-name
run: |
if [[ ${{ matrix.msystem }} == 'MINGW64' ]]; then
arch="x86_64"
elif [[ ${{ matrix.msystem }} == 'CLANGARM64' ]]; then
arch="ARM64"
fi
echo "arch=$arch" >> "$GITHUB_OUTPUT"
- name: GUI Upload artifact
uses: actions/upload-artifact@bbbca2ddaa5d8feaa63e36b76fdaad77386f024f # v7.0.0
with:
name: 'Snow Windows (${{ steps.arch-name.outputs.arch }})'
if-no-files-found: error
path: snow-gui/*