summaryrefslogtreecommitdiffstats
path: root/.github
diff options
context:
space:
mode:
Diffstat (limited to '.github')
-rw-r--r--.github/workflows/linux-with-tcl8-build.yml186
-rw-r--r--.github/workflows/linux-with-tcl9-build.yml186
2 files changed, 372 insertions, 0 deletions
diff --git a/.github/workflows/linux-with-tcl8-build.yml b/.github/workflows/linux-with-tcl8-build.yml
new file mode 100644
index 0000000..4e56b64
--- /dev/null
+++ b/.github/workflows/linux-with-tcl8-build.yml
@@ -0,0 +1,186 @@
+name: Linux (with Tcl 8.7)
+on: [push]
+defaults:
+ run:
+ shell: bash
+ working-directory: tk/unix
+env:
+ ERROR_ON_FAILURES: 1
+jobs:
+ build:
+ runs-on: ubuntu-20.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@v2
+ with:
+ path: tk
+ - name: Checkout Tcl
+ uses: actions/checkout@v2
+ with:
+ repository: tcltk/tcl
+ ref: core-8-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 "--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
+ }
+ - name: Discover Version ID
+ if: ${{ env.BUILD_CONFIG_ID == 'gcc' }}
+ run: |
+ cd /tmp/dist
+ echo "VERSION=`ls -d tk* | sed 's/tk//'`" >> $GITHUB_ENV
+ - name: Upload Source Distribution
+ if: ${{ env.BUILD_CONFIG_ID == 'gcc' }}
+ uses: actions/upload-artifact@v2
+ with:
+ name: Tk ${{ env.VERSION }} Source distribution (unofficial)
+ path: |
+ /tmp/dist/tk*
+ !/tmp/dist/tk*/html/**
+ - name: Upload Documentation Distribution
+ if: ${{ env.BUILD_CONFIG_ID == 'gcc' }}
+ uses: actions/upload-artifact@v2
+ with:
+ name: Tk ${{ env.VERSION }} HTML documentation (unofficial)
+ path: /tmp/dist/tk*/html
+ test:
+ runs-on: ubuntu-20.04
+ strategy:
+ matrix:
+ compiler:
+ - "gcc"
+ cfgopt:
+ - ""
+ - "--enable-symbols"
+ steps:
+ - name: Checkout
+ uses: actions/checkout@v2
+ with:
+ path: tk
+ - name: Checkout Tcl
+ uses: actions/checkout@v2
+ with:
+ repository: tcltk/tcl
+ ref: core-8-branch
+ path: tcl
+ - name: Setup Environment (compiler=${{ matrix.compiler }})
+ run: |
+ sudo apt-get install libxss-dev xvfb
+ 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
+ }
diff --git a/.github/workflows/linux-with-tcl9-build.yml b/.github/workflows/linux-with-tcl9-build.yml
new file mode 100644
index 0000000..5335708
--- /dev/null
+++ b/.github/workflows/linux-with-tcl9-build.yml
@@ -0,0 +1,186 @@
+name: Linux (with Tcl 9.0)
+on: [push]
+defaults:
+ run:
+ shell: bash
+ working-directory: tk/unix
+env:
+ ERROR_ON_FAILURES: 1
+jobs:
+ build:
+ runs-on: ubuntu-20.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@v2
+ with:
+ path: tk
+ - name: Checkout Tcl
+ uses: actions/checkout@v2
+ with:
+ repository: tcltk/tcl
+ ref: main
+ 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 "--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
+ }
+ - name: Discover Version ID
+ if: ${{ env.BUILD_CONFIG_ID == 'gcc' }}
+ run: |
+ cd /tmp/dist
+ echo "VERSION=`ls -d tk* | sed 's/tk//'`" >> $GITHUB_ENV
+ - name: Upload Source Distribution
+ if: ${{ env.BUILD_CONFIG_ID == 'gcc' }}
+ uses: actions/upload-artifact@v2
+ with:
+ name: Tk ${{ env.VERSION }} Source distribution (unofficial)
+ path: |
+ /tmp/dist/tk*
+ !/tmp/dist/tk*/html/**
+ - name: Upload Documentation Distribution
+ if: ${{ env.BUILD_CONFIG_ID == 'gcc' }}
+ uses: actions/upload-artifact@v2
+ with:
+ name: Tk ${{ env.VERSION }} HTML documentation (unofficial)
+ path: /tmp/dist/tk*/html
+ test:
+ runs-on: ubuntu-20.04
+ strategy:
+ matrix:
+ compiler:
+ - "gcc"
+ cfgopt:
+ - ""
+ - "--enable-symbols"
+ steps:
+ - name: Checkout
+ uses: actions/checkout@v2
+ with:
+ path: tk
+ - name: Checkout Tcl
+ uses: actions/checkout@v2
+ with:
+ repository: tcltk/tcl
+ ref: main
+ path: tcl
+ - name: Setup Environment (compiler=${{ matrix.compiler }})
+ run: |
+ sudo apt-get install libxss-dev xvfb
+ 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
+ }