Skip to content

adding_MinGW_build_support #881

adding_MinGW_build_support

adding_MinGW_build_support #881

Workflow file for this run

name: Windows Test
on:
workflow_dispatch:
pull_request:
push:
tags:
- 'v*.*.*'
branches:
- master
- develop
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
steps:
- name: Check out the repository
uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Set up MSYS2
uses: msys2/setup-msys2@v2
with:
update: true
install: >
base-devel
mingw-w64-x86_64-gcc
mingw-w64-x86_64-cmake
mingw-w64-x86_64-make
cache: false
- name: Wait for MSYS2 to complete setup
run: sleep 60
- name: Add MSYS2 to PATH
run: |
echo "C:\msys64\mingw64\bin" >> $Env:GITHUB_PATH
echo "C:\msys64\usr\bin" >> $Env:GITHUB_PATH
- name: Create build directory
run: mkdir build
- name: Configure with CMake
working-directory: ./build
run: |
cmake -G "MinGW Makefiles" -DCMAKE_BUILD_TYPE=Debug -DOPTION_FORK_SAFE=OFF -DOPTION_BUILD_PLUGINS_BACKTRACE=OFF ..
- name: Build with CMake
working-directory: ./build
run: cmake --build .
- name: Run CTest
working-directory: ./build
run: |
ctest -j$(getconf _NPROCESSORS_ONLN) --timeout 5400 --output-on-failure -C Debug
shell: bash
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/trigger-workflow-and-wait@v1.6.1
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