Skip to content

Workflow file for this run

name: Windows Test
on:
workflow_dispatch:
pull_request:
push:
tags:
- 'v*.*.*'
branches:
- master
- develop
- msys2env
concurrency:
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
cancel-in-progress: true
jobs:
windows-test:
name: Windows MSVC Test
runs-on: windows-2019 # TODO: Implement matrix with windows 2019 and 2022
strategy:
fail-fast: false
matrix:
options: [
{build: debug, sanitizer: without-sanitizer},
{build: debug, sanitizer: address-sanitizer},
# TODO: Not supported yet by MSVC
# {build: debug, sanitizer: thread-sanitizer},
# {build: debug, sanitizer: memory-sanitizer},
# TODO: https://github.com/metacall/core/issues/461
# {build: release, sanitizer: without-sanitizer}
]
steps:
- name: Check out the repository
uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Activate the Visual Studio Developer Prompt
uses: ilammy/msvc-dev-cmd@v1
with:
arch: amd64
- name: Set up the environment
run: cmd.exe /c "powershell .\tools\metacall-environment.ps1 $Env:METACALL_INSTALL_OPTIONS"
env:
METACALL_INSTALL_OPTIONS: python nodejs java ruby typescript wasm rpc file # netcore5 java c cobol rust rapidjson funchook swig pack # clangformat v8rep51 coverage
- name: Configure
run: |
$METACALL_PATH = $PWD
md -Force "$METACALL_PATH\build"
cd "$METACALL_PATH\build"
cmd.exe /c "powershell ..\tools\metacall-configure.ps1 $Env:METACALL_BUILD_OPTIONS"
env:
METACALL_BUILD_OPTIONS: ${{ matrix.options.build }} ${{ matrix.options.sanitizer }} scripts ports tests python nodejs java ruby typescript wasm rpc file # netcore5 java c cobol rust examples install pack benchmarks # v8 coverage
- name: Build
working-directory: ./build
run: cmd.exe /c "powershell ..\tools\metacall-build.ps1 $Env:METACALL_BUILD_OPTIONS"
env:
METACALL_BUILD_OPTIONS: ${{ matrix.options.build }} tests
windows-mingw-test:
name: Windows MinGW Test
runs-on: windows-latest # Use the latest Windows environment
strategy:
fail-fast: false # Continue with other matrix runs even if one fails
matrix:
include:
- { icon: '⬛', sys: mingw32 } # 32-bit MinGW environment
- { icon: '🟦', sys: mingw64 } # 64-bit MinGW environment
- { icon: '🟨', sys: ucrt64 } # UCRT-based 64-bit environment
- { icon: '🟧', sys: clang64 } # Clang-based 64-bit environment
name: 🚧${{ matrix.icon }} ${{ matrix.sys }} # Display custom icon for each environment

Check failure on line 80 in .github/workflows/windows-test.yml

View workflow run for this annotation

GitHub Actions / .github/workflows/windows-test.yml

Invalid workflow file

You have an error in your yaml syntax on line 80
defaults:
run:
shell: msys2 {0} # Use MSYS2 shell based on the selected environment
steps:
- name: '🧰 Checkout'
uses: actions/checkout@v4
with:
fetch-depth: 0 # Fetch full repository history for use
- name: '${{ matrix.icon }} Setup MSYS2'
uses: msys2/setup-msys2@v2
with:
msystem: ${{matrix.sys}} # Select the MSYS2 environment (mingw32, mingw64, etc.)
update: true # Update MSYS2's package database
install: >-
git # Install git
make # Install make utility
pacboy: >-
toolchain:p # Install MSYS2 toolchain (GCC, Clang, etc.)
cmake:p # Install CMake tool
ninja:p # Install Ninja build system
- name: '🚧 Build TOOL'
run: |
cmake -G Ninja -B build -DCMAKE_BUILD_TYPE=Release # Configure build with Ninja
cmake --build build # Build the project using Ninja
windows-distributable:
name: Windows Distributable Dispatch
needs: windows-test
runs-on: ubuntu-latest
if: startsWith(github.ref, 'refs/tags/') || github.ref == 'refs/heads/master'
steps:
- name: Windows Workflow Dispatch
uses: convictional/[email protected]
with:
owner: metacall
repo: distributable-windows
github_token: ${{ secrets.G_PERSONAL_ACCESS_TOKEN }}
workflow_file_name: ci.yml
wait_workflow: true
client_payload: '{"ref": "${{ github.head_ref || github.ref_name }}"}'
ref: master