Merge 8.6 #275
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: Linux (with Tcl 8.6) | |
on: | |
push: | |
branches: | |
- "main" | |
- "core-8-6-branch" | |
tags: | |
- "core-**" | |
permissions: | |
contents: read | |
defaults: | |
run: | |
shell: bash | |
working-directory: tk/unix | |
env: | |
ERROR_ON_FAILURES: 1 | |
jobs: | |
build: | |
runs-on: ubuntu-22.04 | |
strategy: | |
matrix: | |
compiler: | |
- "gcc" | |
- "clang" | |
cfgopt: | |
- "" | |
- "CFLAGS=-DTK_NO_DEPRECATED=1" | |
- "--disable-shared" | |
- "--disable-xft" | |
- "--disable-xss" | |
- "--enable-symbols" | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
with: | |
path: tk | |
- name: Checkout Tcl | |
uses: actions/checkout@v4 | |
with: | |
repository: tcltk/tcl | |
ref: core-8-6-branch | |
path: tcl | |
- name: Setup Environment (compiler=${{ matrix.compiler }}) | |
run: | | |
sudo apt-get install libxss-dev | |
mkdir "$HOME/install dir" | |
touch tk/doc/man.macros tk/generic/tkStubInit.c | |
echo "CFGOPT=$CFGOPT" >> $GITHUB_ENV | |
echo "CC=$COMPILER" >> $GITHUB_ENV | |
echo "TOOL_DIR=$(cd tcl/tools;pwd)" >> $GITHUB_ENV | |
echo "BUILD_CONFIG_ID=$OPTS" >> $GITHUB_ENV | |
working-directory: "." | |
env: | |
CFGOPT: ${{ matrix.cfgopt }} | |
COMPILER: ${{ matrix.compiler }} | |
OPTS: ${{ matrix.compiler }}${{ matrix.cfgopt }} | |
- name: Configure and Build Tcl | |
run: | | |
./configure $CFGOPT "--prefix=$HOME/install dir" || { | |
cat config.log | |
echo "::warning::Failure during Tcl Configure" | |
exit 1 | |
} | |
make all install || { | |
echo "::warning::Failure during Tcl Build" | |
exit 1 | |
} | |
echo "TCL_CONFIG_PATH=`pwd`" >> $GITHUB_ENV | |
working-directory: tcl/unix | |
- name: Configure (opts=${{ matrix.cfgopt }}) | |
run: | | |
./configure $CFGOPT --with-tcl=$TCL_CONFIG_PATH --disable-zipfs "--prefix=$HOME/install dir" || { | |
cat config.log | |
echo "::error::Failure during Configure" | |
exit 1 | |
} | |
- name: Build | |
run: | | |
make binaries libraries || { | |
echo "::error::Failure during Build" | |
exit 1 | |
} | |
- name: Build Test Harness | |
run: | | |
make tktest || { | |
echo "::error::Failure during Build" | |
exit 1 | |
} | |
- name: Test-Drive Installation | |
run: | | |
make install || { | |
echo "::error::Failure during Install" | |
exit 1 | |
} | |
- name: Create Distribution Package | |
run: | | |
make dist || { | |
echo "::error::Failure during Distribute" | |
exit 1 | |
} | |
- name: Convert Documentation to HTML | |
run: | | |
make html-tk TOOL_DIR=$TOOL_DIR || { | |
echo "::error::Failure during Distribute" | |
exit 1 | |
} | |
test: | |
runs-on: ubuntu-22.04 | |
strategy: | |
matrix: | |
compiler: | |
- "gcc" | |
cfgopt: | |
- "" | |
- "--disable-xft" | |
- "--enable-symbols" | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
with: | |
path: tk | |
- name: Checkout Tcl | |
uses: actions/checkout@v4 | |
with: | |
repository: tcltk/tcl | |
ref: core-8-6-branch | |
path: tcl | |
- name: Setup Environment (compiler=${{ matrix.compiler }}) | |
run: | | |
sudo apt-get install libxss-dev xvfb libicu-dev | |
mkdir "$HOME/install dir" | |
touch tk/doc/man.macros tk/generic/tkStubInit.c | |
echo "CFGOPT=$CFGOPT" >> $GITHUB_ENV | |
echo "CC=$COMPILER" >> $GITHUB_ENV | |
working-directory: "." | |
env: | |
CFGOPT: ${{ matrix.cfgopt }} | |
COMPILER: ${{ matrix.compiler }} | |
- name: Configure and Build Tcl | |
run: | | |
./configure $CFGOPT "--prefix=$HOME/install dir" || { | |
cat config.log | |
echo "::warning::Failure during Tcl Configure" | |
exit 1 | |
} | |
make all install || { | |
echo "::warning::Failure during Tcl Build" | |
exit 1 | |
} | |
echo "TCL_CONFIG_PATH=`pwd`" >> $GITHUB_ENV | |
working-directory: tcl/unix | |
- name: Configure ${{ matrix.cfgopt }} | |
run: | | |
./configure $CFGOPT --with-tcl=$TCL_CONFIG_PATH "--prefix=$HOME/install dir" || { | |
cat config.log | |
echo "::error::Failure during Configure" | |
exit 1 | |
} | |
- name: Build | |
run: | | |
make binaries libraries tktest || { | |
echo "::error::Failure during Build" | |
exit 1 | |
} | |
- name: Run Tests | |
run: | | |
xvfb-run --auto-servernum make test-classic | tee out-classic.txt | |
xvfb-run --auto-servernum make test-ttk | tee out-ttk.txt | |
grep -q "Failed 0" out-classic.txt || { | |
echo "::error::Failure during Test" | |
exit 1 | |
} | |
grep -q "Failed 0" out-ttk.txt || { | |
echo "::error::Failure during Test" | |
exit 1 | |
} | |
timeout-minutes: 15 |