summaryrefslogtreecommitdiffstats
path: root/.github/workflows/linux-with-tcl86-build.yml
diff options
context:
space:
mode:
Diffstat (limited to '.github/workflows/linux-with-tcl86-build.yml')
-rw-r--r--.github/workflows/linux-with-tcl86-build.yml177
1 files changed, 177 insertions, 0 deletions
diff --git a/.github/workflows/linux-with-tcl86-build.yml b/.github/workflows/linux-with-tcl86-build.yml
new file mode 100644
index 0000000..ba83125
--- /dev/null
+++ b/.github/workflows/linux-with-tcl86-build.yml
@@ -0,0 +1,177 @@
+name: Linux (with Tcl 8.6)
+on:
+ push:
+ branches:
+ - "main"
+ - "core-8-branch"
+ - "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-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 libxft-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 libxft-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