@ -1,3 +1,4 @@
# This reusable workflow is used by actions/*-versions repositories
# It is designed to
# - build and test new versions of a tool (Go, Node)
@ -25,66 +26,19 @@ defaults:
run:
shell : pwsh
# Fix for windows arm64 7z file issue. More details at https://github.com/nodejs/node/issues/52231
jobs:
build:
name : Build ${{ inputs.tool-name }} ${{ inputs.tool-version }} [${{ matrix.platform }}] [${{ matrix.architecture }}]
runs-on : ${{ matrix.os }}
env :
ARTIFACT_NAME : ${{ inputs.tool-name }}-${{ inputs.tool-version }}-${{ matrix.platform }}-${{ matrix.architecture }}
strategy:
fail-fast : false
matrix:
include:
- os : ubuntu-latest
platform : linux
architecture : x64
- os : ubuntu-latest
platform : darwin
architecture : x64
- os : ubuntu-latest
platform : win32
architecture : x64
- os : ubuntu-latest
platform : linux
architecture : arm64
- os : ubuntu-latest
platform : darwin
architecture : arm64
steps:
- uses : actions/checkout@v4
with:
submodules : true
- name : Build ${{ inputs.tool-name }} ${{ inputs.tool-version }}
run : |
./builders/build-${{ inputs.tool-name }}.ps1 -Version ${{ inputs.tool-version }} `
-Platform ${{ matrix.platform }} `
-Architecture ${{ matrix.architecture }}
- name : Publish artifact
uses : actions/upload-artifact@v3
with:
name : ${{ env.ARTIFACT_NAME }}
path : ${{ runner.temp }}/artifact
build-arm:
name : Build ${{ inputs.tool-name }} ${{ inputs.tool-version }} [${{ matrix.platform }}] [${{ matrix.architecture }}]
runs-on : windows-latest
if : (inputs.tool-name == 'go') || (inputs.tool-name == 'node' && inputs['tool-version'] > '20.0.0')
runs-on : ubuntu-latest
env :
ARTIFACT_NAME : ${{ inputs.tool-name }}-${{ inputs.tool-version }}-${{ matrix.platform }}-${{ matrix.architecture }}
strategy:
fail-fast : false
matrix:
include :
- os : windows-latest
platform : win32
architecture : arm64
platform : [ linux, darwin, win32]
architecture : [ x64, arm64]
steps:
- uses : actions/checkout@v4
with:
@ -95,7 +49,6 @@ jobs:
./builders/build-${{ inputs.tool-name }}.ps1 -Version ${{ inputs.tool-version }} `
-Platform ${{ matrix.platform }} `
-Architecture ${{ matrix.architecture }}
- name : Publish artifact
uses : actions/upload-artifact@v3
@ -184,7 +137,7 @@ jobs:
env :
VERSION : ${{ inputs.tool-version }}
run : |
Install-Module Pester -Force -Scope CurrentUser
Install-Module Pester -Force -Scope CurrentUser -SkipPublisherCheck
Import-Module Pester
$toolName = (Get-Culture).TextInfo.ToTitleCase("${{ inputs.tool-name }}")
Invoke-Pester -Script ./$toolName.Tests.ps1 -EnableExit