summaryrefslogtreecommitdiffstats
path: root/.github
diff options
context:
space:
mode:
Diffstat (limited to '.github')
-rw-r--r--.github/workflows/linux-build.yml6
-rw-r--r--.github/workflows/mac-build.yml11
-rw-r--r--.github/workflows/onefiledist.yml146
-rw-r--r--.github/workflows/win-build.yml11
4 files changed, 166 insertions, 8 deletions
diff --git a/.github/workflows/linux-build.yml b/.github/workflows/linux-build.yml
index 01fcdfd..7ba9e89 100644
--- a/.github/workflows/linux-build.yml
+++ b/.github/workflows/linux-build.yml
@@ -9,12 +9,12 @@ jobs:
matrix:
cfgopt:
- ""
+ - "CFLAGS=-DTCL_UTF_MAX=3"
+ - "CFLAGS=-DTCL_NO_DEPRECATED=1"
- "--disable-shared"
- "--enable-symbols"
- "--enable-symbols=mem"
- "--enable-symbols=all"
- - "CFLAGS=-DTCL_UTF_MAX=4"
- - "CFLAGS=-DTCL_UTF_MAX=6"
defaults:
run:
shell: bash
@@ -24,7 +24,7 @@ jobs:
uses: actions/checkout@v3
- name: Prepare
run: |
- touch tclStubInit.c tclOOStubInit.c
+ touch tclStubInit.c tclOOStubInit.c tclOOScript.h
working-directory: generic
- name: Configure ${{ matrix.cfgopt }}
run: |
diff --git a/.github/workflows/mac-build.yml b/.github/workflows/mac-build.yml
index 883c70e..a9345a1 100644
--- a/.github/workflows/mac-build.yml
+++ b/.github/workflows/mac-build.yml
@@ -14,10 +14,12 @@ jobs:
uses: actions/checkout@v3
- name: Prepare
run: |
- touch tclStubInit.c tclOOStubInit.c
+ touch tclStubInit.c tclOOStubInit.c tclOOScript.h
working-directory: generic
- name: Build
run: make all
+ env:
+ CFLAGS: -arch x86_64 -arch arm64
- name: Run Tests
run: make test styles=develop
env:
@@ -42,17 +44,20 @@ jobs:
uses: actions/checkout@v3
- name: Prepare
run: |
- touch tclStubInit.c tclOOStubInit.c
+ touch tclStubInit.c tclOOStubInit.c tclOOScript.h
mkdir "$HOME/install dir"
working-directory: generic
- name: Configure ${{ matrix.cfgopt }}
# Note that macOS is always a 64 bit platform
- run: ./configure --enable-64bit --enable-dtrace --enable-framework ${CFGOPT} "--prefix=$HOME/install" || (cat config.log && exit 1)
+ run: ./configure --enable-dtrace --enable-framework ${CFGOPT} "--prefix=$HOME/install" || (cat config.log && exit 1)
env:
+ CFLAGS: -arch x86_64 -arch arm64
CFGOPT: ${{ matrix.cfgopt }}
- name: Build
run: |
make all tcltest
+ env:
+ CFLAGS: -arch x86_64 -arch arm64
- name: Run Tests
run: |
make test
diff --git a/.github/workflows/onefiledist.yml b/.github/workflows/onefiledist.yml
new file mode 100644
index 0000000..1f75762
--- /dev/null
+++ b/.github/workflows/onefiledist.yml
@@ -0,0 +1,146 @@
+name: Build Binaries
+on: [push]
+permissions:
+ contents: read
+jobs:
+ linux:
+ name: Linux
+ runs-on: ubuntu-20.04
+ defaults:
+ run:
+ shell: bash
+ steps:
+ - name: Checkout
+ uses: actions/checkout@v3
+ - name: Prepare
+ run: |
+ touch generic/tclStubInit.c generic/tclOOStubInit.c
+ mkdir 1dist
+ echo "VER_PATH=$(cd tools; pwd)/addVerToFile.tcl" >> $GITHUB_ENV
+ working-directory: .
+ - name: Configure
+ run: ./configure --disable-symbols --disable-shared --enable-zipfs
+ working-directory: unix
+ - name: Build
+ run: |
+ make tclsh
+ make shell SCRIPT="$VER_PATH $GITHUB_ENV"
+ echo "TCL_ZIP=`pwd`/`echo libtcl*.zip`" >> $GITHUB_ENV
+ working-directory: unix
+ - name: Package
+ run: |
+ cp ../unix/tclsh tclsh${TCL_PATCHLEVEL}_snapshot
+ chmod +x tclsh${TCL_PATCHLEVEL}_snapshot
+ tar -cf tclsh${TCL_PATCHLEVEL}_snapshot.tar tclsh${TCL_PATCHLEVEL}_snapshot
+ working-directory: 1dist
+ - name: Upload
+ uses: actions/upload-artifact@v3
+ with:
+ name: Tclsh ${{ env.TCL_PATCHLEVEL }} Linux single-file build (snapshot)
+ path: 1dist/*.tar
+ macos:
+ name: macOS
+ runs-on: macos-11
+ defaults:
+ run:
+ shell: bash
+ steps:
+ - name: Checkout
+ uses: actions/checkout@v3
+ - name: Checkout create-dmg
+ uses: actions/checkout@v3
+ with:
+ repository: create-dmg/create-dmg
+ ref: v1.0.8
+ path: create-dmg
+ - name: Prepare
+ run: |
+ mkdir 1dist
+ touch generic/tclStubInit.c generic/tclOOStubInit.c || true
+ wget https://github.com/culler/macher/releases/download/v1.3/macher
+ sudo cp macher /usr/local/bin
+ sudo chmod a+x /usr/local/bin/macher
+ echo "VER_PATH=$(cd tools; pwd)/addVerToFile.tcl" >> $GITHUB_ENV
+ echo "CREATE_DMG=$(cd create-dmg;pwd)/create-dmg" >> $GITHUB_ENV
+ echo "CFLAGS=-arch x86_64 -arch arm64" >> $GITHUB_ENV
+ - name: Configure
+ run: ./configure --disable-symbols --disable-shared --enable-zipfs
+ working-directory: unix
+ - name: Build
+ run: |
+ make tclsh
+ make shell SCRIPT="$VER_PATH $GITHUB_ENV"
+ echo "TCL_BIN=`pwd`/tclsh" >> $GITHUB_ENV
+ echo "TCL_ZIP=`pwd`/`echo libtcl*.zip`" >> $GITHUB_ENV
+ working-directory: unix
+ - name: Package
+ run: |
+ mkdir contents
+ cp $TCL_BIN contents/tclsh${TCL_PATCHLEVEL}_snapshot
+ chmod +x contents/tclsh${TCL_PATCHLEVEL}_snapshot
+ cat > contents/README.txt <<EOF
+ This is a single-file executable developer preview of Tcl $TCL_PATCHLEVEL
+
+ It is not intended as an official release at all, so it is unsigned and unnotarized.
+ Use strictly at your own risk.
+
+ To run it, you need to copy the executable out and run:
+ xattr -d com.apple.quarantine tclsh${TCL_PATCHLEVEL}_snapshot
+ to mark the executable as runnable on your machine.
+ EOF
+ $CREATE_DMG \
+ --volname "Tcl $TCL_PATCHLEVEL (snapshot)" \
+ --window-pos 200 120 \
+ --window-size 800 400 \
+ "Tcl-$TCL_PATCHLEVEL-(snapshot).dmg" \
+ "contents/"
+ working-directory: 1dist
+ - name: Upload
+ uses: actions/upload-artifact@v3
+ with:
+ name: Tclsh ${{ env.TCL_PATCHLEVEL }} macOS single-file build (snapshot)
+ path: 1dist/*.dmg
+ win:
+ name: Windows
+ runs-on: windows-2019
+ defaults:
+ run:
+ shell: msys2 {0}
+ env:
+ CC: gcc
+ CFGOPT: --disable-symbols --disable-shared
+ steps:
+ - name: Install MSYS2
+ uses: msys2/setup-msys2@v2
+ with:
+ msystem: UCRT64
+ install: git mingw-w64-ucrt-x86_64-toolchain make zip
+ - name: Checkout
+ uses: actions/checkout@v3
+ - name: Prepare
+ run: |
+ touch generic/tclStubInit.c generic/tclOOStubInit.c
+ echo "VER_PATH=$(cd tools; pwd)/addVerToFile.tcl" >> $GITHUB_ENV
+ mkdir 1dist
+ working-directory: .
+ - name: Configure
+ run: ./configure $CFGOPT
+ working-directory: win
+ - name: Build
+ run: |
+ make binaries libraries
+ echo "TCL_ZIP=`pwd`/`echo libtcl*.zip`" >> $GITHUB_ENV
+ working-directory: win
+ - name: Get Exact Version
+ run: |
+ ./tclsh*.exe $VER_PATH $GITHUB_ENV
+ working-directory: win
+ - name: Set Executable Name
+ run: |
+ cp ../win/tclsh*.exe tclsh${TCL_PATCHLEVEL}_snapshot.exe
+ working-directory: 1dist
+ - name: Upload
+ uses: actions/upload-artifact@v3
+ with:
+ name: Tclsh ${{ env.TCL_PATCHLEVEL }} Windows single-file build (snapshot)
+ path: '1dist/*_snapshot.exe'
diff --git a/.github/workflows/win-build.yml b/.github/workflows/win-build.yml
index 6ee57f9..ba4e5ba 100644
--- a/.github/workflows/win-build.yml
+++ b/.github/workflows/win-build.yml
@@ -15,7 +15,9 @@ jobs:
matrix:
cfgopt:
- ""
- - "OPTS=static,msvcrt"
+ - "OPTS=utf16"
+ - "CHECKS=nodep"
+ - "OPTS=static"
- "OPTS=symbols"
- "OPTS=symbols STATS=compdbg,memdbg"
# Using powershell means we need to explicitly stop on failure
@@ -52,6 +54,8 @@ jobs:
matrix:
cfgopt:
- ""
+ - "CFLAGS=-DTCL_UTF_MAX=3"
+ - "CFLAGS=-DTCL_NO_DEPRECATED=1"
- "--disable-shared"
- "--enable-symbols"
- "--enable-symbols=mem"
@@ -67,7 +71,7 @@ jobs:
uses: actions/checkout@v3
- name: Prepare
run: |
- touch tclStubInit.c tclOOStubInit.c
+ touch tclStubInit.c tclOOStubInit.c tclOOScript.h
mkdir "${HOME}/install dir"
working-directory: generic
- name: Configure ${{ matrix.cfgopt }}
@@ -81,3 +85,6 @@ jobs:
run: make tcltest
- name: Run Tests
run: make test
+
+# If you add builds with Wine, be sure to define the environment variable
+# CI_USING_WINE when running them so that broken tests know not to run.