Update wm.test #3506
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: macOS | |
on: | |
push: | |
branches: | |
- "main" | |
- "core-8-branch" | |
- "core-8-6-branch" | |
tags: | |
- "core-**" | |
permissions: | |
contents: read | |
env: | |
ERROR_ON_FAILURES: 1 | |
jobs: | |
xcode: | |
runs-on: macos-14 | |
defaults: | |
run: | |
shell: bash | |
working-directory: tk/macosx | |
steps: | |
- name: Checkout Tk | |
uses: actions/checkout@v4 | |
with: | |
path: tk | |
- name: Check out Tcl 9.0 | |
uses: actions/checkout@v4 | |
with: | |
repository: tcltk/tcl | |
ref: main | |
path: tcl | |
- name: Prepare checked out repositories | |
run: | | |
touch tk/generic/tkStubInit.c | |
mkdir build | |
echo "BUILD_DIR=`cd build && pwd`" >> $GITHUB_ENV | |
echo "DESTDIR=`cd build && pwd`" >> $GITHUB_ENV | |
working-directory: . | |
- name: Build Tcl | |
run: | | |
make all | |
working-directory: tcl/macosx | |
- name: Build | |
run: | | |
make all install || { | |
echo "::error::Failure during Build" | |
exit 1 | |
} | |
- name: Run Tests | |
run: | | |
make test | tee out.txt | |
nmatches=$( grep -c "Failed 0" out.txt ) | |
if [ $nmatches -lt 4 ] | |
then | |
echo "::error::Failure during Test" | |
exit 1 | |
fi | |
timeout-minutes: 30 | |
clang: | |
runs-on: macos-14 | |
strategy: | |
matrix: | |
symbols: | |
- 'no' | |
- 'mem' | |
options: | |
- '--enable-aqua' | |
- '--disable-aqua' | |
defaults: | |
run: | |
shell: bash | |
working-directory: tk/unix | |
steps: | |
- name: Checkout Tk | |
uses: actions/checkout@v4 | |
with: | |
path: tk | |
- name: Check out Tcl 9.0 | |
uses: actions/checkout@v4 | |
with: | |
repository: tcltk/tcl | |
ref: main | |
path: tcl | |
- name: Prepare checked out repositories | |
env: | |
SET_DISPLAY: ${{ contains(matrix.options, '--disable-aqua') }} | |
run: | | |
touch tkStubInit.c | |
mkdir "$HOME/install dir" | |
echo "USE_XVFB=$SET_DISPLAY" >> $GITHUB_ENV | |
working-directory: tk/generic | |
- name: Add X11 (if required) | |
if: ${{ env.USE_XVFB == 'true' }} | |
run: | | |
brew install --cask xquartz | |
sudo /opt/X11/libexec/privileged_startx || true | |
working-directory: . | |
- name: Build Tcl | |
run: | | |
./configure $CFGOPT --disable-zipfs "--prefix=$HOME/install dir" || { | |
cat config.log | |
echo "::error::Failure during Tcl Configure" | |
exit 1 | |
} | |
make all || { | |
echo "::error::Failure during Tcl Build" | |
exit 1 | |
} | |
make install || { | |
echo "::error::Failure during Tcl Install" | |
exit 1 | |
} | |
working-directory: tcl/unix | |
env: | |
CFGOPT: --enable-symbols=${{ matrix.symbols }} | |
- name: Configure (symbols=${{ matrix.symbols }} ${{matrix.options }}) | |
run: | | |
./configure $CFGOPT --disable-zipfs "--prefix=$HOME/install dir" --disable-xft || { | |
cat config.log | |
echo "::error::Failure during Configure" | |
exit 1 | |
} | |
env: | |
CFGOPT: --enable-symbols=${{ matrix.symbols }} ${{matrix.options }} | |
- name: Build | |
run: | | |
make all tktest || { | |
echo "::error::Failure during Build" | |
exit 1 | |
} | |
- name: Run Tests | |
run: | | |
if [ $USE_XVFB == true ]; then | |
function runXvfb { | |
PATH=$PATH:/opt/X11/bin | |
Xvfb $1 & | |
XVFB_PID=$! | |
echo Launched Xvfb $1 as process $XVFB_PID >&2 | |
trap "echo killing process $XVFB_PID... >&2; kill $XVFB_PID" 0 | |
export DISPLAY=$1 | |
sleep 2 | |
} | |
else | |
function runXvfb { | |
echo Xvfb not used, this is a --enable-aqua build | |
} | |
fi | |
( runXvfb :0; make test-classic; exit $? ) | tee out-classic.txt || { | |
echo "::error::Failure during Test (classic)" | |
exit 1 | |
} | |
( runXvfb :0; make test-ttk; exit $? ) | tee out-ttk.txt || { | |
echo "::error::Failure during Test (ttk)" | |
exit 1 | |
} | |
cat out-classic.txt | grep -q "Failed 0" || { | |
echo "::error::Failure in classic test results" | |
exit 1 | |
} | |
cat out-ttk.txt | grep -q "Failed 0" || { | |
echo "::error::Failure in ttk test results" | |
exit 1 | |
} | |
timeout-minutes: 20 | |
- name: Carry out trial installation | |
run: | | |
make install || { | |
cat config.log | |
echo "::error::Failure during Install" | |
exit 1 | |
} |