Skip to content

Add Workflow for Multi-Architecture Docker Image Build, Push, and Manifest Management #935

Add Workflow for Multi-Architecture Docker Image Build, Push, and Manifest Management

Add Workflow for Multi-Architecture Docker Image Build, Push, and Manifest Management #935

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-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