name: macOS on: push: branches: - "main" - "core-9-0-branch" tags: - "core-**" permissions: contents: read jobs: 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 strategy: matrix: config: - "" - "--disable-shared" - "--disable-zipfs" - "--enable-symbols" - "--enable-symbols=mem" - "--enable-symbols=all" 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