Skip to content

Reduce size of build matrices for non-critical commits. This needs de… #4940

Reduce size of build matrices for non-critical commits. This needs de…

Reduce size of build matrices for non-critical commits. This needs de… #4940

Workflow file for this run

name: macOS
on:
push:
branches:
- "main"
- "core-9-0-branch"
tags:
- "core-**"
permissions:
contents: read
jobs:
plan:
runs-on: ubuntu-latest
outputs:
clang: ${{ steps.set-matrix.outputs.clang }}
steps:
- id: set-matrix
# DO NOT CHANGE THIS MATRIX SPEC; IT AFFECTS OUR COST CONTROLS
run: |
case "$GITHUB_REF_NAME" in
"main" | "core-9-0-branch")
cat >>$GITHUB_OUTPUT <<'EOF'
clang=<<'EOJ'
{
"config": [
"",
"--disable-shared",
"--disable-zipfs",
"--enable-symbols",
"--enable-symbols=mem",
"--enable-symbols=all"
]
}
EOJ
EOF
;;
*)
cat >>$GITHUB_OUTPUT <<'EOF'
clang=<<'EOJ'
{
"config": [
"",
"--enable-symbols=all"
]
}
EOJ
EOF
;;
esac
xcode:
runs-on: macos-15
defaults:
run:
shell: bash
working-directory: macosx
steps:
- name: Checkout
uses: actions/checkout@v4
timeout-minutes: 5
- name: Prepare
run: |
touch tclStubInit.c tclOOStubInit.c tclOOScript.h
working-directory: generic
- name: Build
run: make -j4 all
env:
CFLAGS: -arch x86_64 -arch arm64
timeout-minutes: 15
- name: Run Tests
run: make -j4 test styles=develop
env:
ERROR_ON_FAILURES: 1
MAC_CI: 1
timeout-minutes: 15
clang:
runs-on: macos-15
needs: plan
strategy:
matrix: ${{ fromJson(need.plan.outputs.clang) }}

Check failure on line 79 in .github/workflows/mac-build.yml

View workflow run for this annotation

GitHub Actions / macOS

Invalid workflow file

The workflow is not valid. .github/workflows/mac-build.yml (Line: 79, Col: 15): Unrecognized named-value: 'need'. Located at position 10 within expression: fromJson(need.plan.outputs.clang) .github/workflows/mac-build.yml (Line: 79, Col: 15): Unexpected value '${{ fromJson(need.plan.outputs.clang) }}'
defaults:
run:
shell: bash
working-directory: unix
steps:
- name: Checkout
uses: actions/checkout@v4
timeout-minutes: 5
- name: Prepare
run: |
touch tclStubInit.c tclOOStubInit.c tclOOScript.h
mkdir "$HOME/install dir"
working-directory: generic
- name: Configure ${{ matrix.config }}
# Note that macOS is always a 64 bit platform
run: ./configure --enable-dtrace --enable-framework ${CFGOPT} "--prefix=$HOME/install" || (cat config.log && exit 1)
env:
CFLAGS: -arch x86_64 -arch arm64
CFGOPT: ${{ matrix.config }}
timeout-minutes: 5
- name: Build
run: |
make -j4 all tcltest
env:
CFLAGS: -arch x86_64 -arch arm64
timeout-minutes: 15
- name: Info
run: |
ulimit -a || echo 'get limit failed'
echo 'puts exe:\t[info nameofexecutable]\nver:\t[info patchlevel]\t[if {![catch tcl::build-info ret]} {set ret}]\nlib:\t[info library]\nplat:\t[lsort -dictionary -stride 2 [array get tcl_platform]]' | make runtest || echo 'get info failed'
- name: Run Tests
run: |
make test
env:
ERROR_ON_FAILURES: 1
MAC_CI: 1
timeout-minutes: 15