summaryrefslogtreecommitdiffstats
path: root/.github/workflows/onefiledist.yml
diff options
context:
space:
mode:
Diffstat (limited to '.github/workflows/onefiledist.yml')
-rw-r--r--.github/workflows/onefiledist.yml138
1 files changed, 138 insertions, 0 deletions
diff --git a/.github/workflows/onefiledist.yml b/.github/workflows/onefiledist.yml
new file mode 100644
index 0000000..0fb6ba5
--- /dev/null
+++ b/.github/workflows/onefiledist.yml
@@ -0,0 +1,138 @@
+name: Build Binaries
+on: [push]
+jobs:
+ linux:
+ name: Linux
+ runs-on: ubuntu-16.04
+ defaults:
+ run:
+ shell: bash
+ steps:
+ - name: Checkout
+ uses: actions/checkout@v2
+ - 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 tclzipfile
+ make shell SCRIPT="$VER_PATH $GITHUB_ENV"
+ echo "TCL_ZIP=`pwd`/`echo libtcl*.zip`" >> $GITHUB_ENV
+ working-directory: unix
+ - name: Package
+ run: |
+ cat ../unix/tclsh $TCL_ZIP > tclsh${TCL_PATCHLEVEL}_unofficial
+ chmod +x tclsh${TCL_PATCHLEVEL}_unofficial
+ tar -cf tclsh${TCL_PATCHLEVEL}_unofficial.tar tclsh${TCL_PATCHLEVEL}_unofficial
+ working-directory: 1dist
+ - name: Upload
+ uses: actions/upload-artifact@v2
+ with:
+ name: Tclsh ${{ env.TCL_PATCHLEVEL }} Linux single-file build (unofficial)
+ path: 1dist/*.tar
+ macos:
+ name: macOS
+ runs-on: macos-latest
+ defaults:
+ run:
+ shell: bash
+ steps:
+ - name: Checkout
+ uses: actions/checkout@v2
+ - name: Checkout create-dmg
+ uses: actions/checkout@v2
+ 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
+ echo "VER_PATH=$(cd tools; pwd)/addVerToFile.tcl" >> $GITHUB_ENV
+ echo "CREATE_DMG=$(cd create-dmg;pwd)/create-dmg" >> $GITHUB_ENV
+ - name: Configure
+ run: ./configure --disable-symbols --disable-shared --enable-zipfs
+ working-directory: unix
+ - name: Build
+ run: |
+ make tclsh tclzipfile
+ 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
+ cat $TCL_BIN $TCL_ZIP > contents/tclsh${TCL_PATCHLEVEL}_unofficial
+ chmod +x contents/tclsh${TCL_PATCHLEVEL}_unofficial
+ 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}_unofficial
+ to mark the executable as runnable on your machine.
+ EOF
+ $CREATE_DMG \
+ --volname "Tcl $TCL_PATCHLEVEL (unofficial)" \
+ --window-pos 200 120 \
+ --window-size 800 400 \
+ "Tcl-$TCL_PATCHLEVEL-(unofficial).dmg" \
+ "contents/"
+ working-directory: 1dist
+ - name: Upload
+ uses: actions/upload-artifact@v2
+ with:
+ name: Tclsh ${{ env.TCL_PATCHLEVEL }} macOS single-file build (unofficial)
+ path: 1dist/*.dmg
+ win:
+ name: Windows
+ runs-on: windows-latest
+ defaults:
+ run:
+ shell: bash
+ steps:
+ - name: Checkout
+ uses: actions/checkout@v2
+ - name: Install MSYS2
+ uses: msys2/setup-msys2@v2
+ - 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 --disable-symbols --disable-shared --enable-zipfs
+ working-directory: win
+ - name: Build
+ run: |
+ make binaries libraries tclzipfile
+ echo "TCL_ZIP=`pwd`/`echo libtcl*.zip`" >> $GITHUB_ENV
+ working-directory: win
+ - name: Package
+ run: |
+ cat ../win/tclsh*.exe $TCL_ZIP > combined.exe
+ working-directory: 1dist
+ - name: Get Exact Version
+ run: |
+ ./combined.exe $VER_PATH $GITHUB_ENV
+ working-directory: 1dist
+ - name: Set Executable Name
+ run: |
+ mv combined.exe tclsh${TCL_PATCHLEVEL}_unofficial.exe
+ working-directory: 1dist
+ - name: Upload
+ uses: actions/upload-artifact@v2
+ with:
+ name: Tclsh ${{ env.TCL_PATCHLEVEL }} Windows single-file build (unofficial)
+ path: '1dist/*_unofficial.exe'