diff options
Diffstat (limited to '.github/workflows/onefiledist.yml')
-rw-r--r-- | .github/workflows/onefiledist.yml | 138 |
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' |