]> prime8.dev >> repos - ttyd.git/commitdiff
workflow: update release action
authorShuanglei Tao <tsl0922@gmail.com>
Wed, 29 Jul 2020 15:07:44 +0000 (23:07 +0800)
committerShuanglei Tao <tsl0922@gmail.com>
Wed, 29 Jul 2020 15:27:29 +0000 (23:27 +0800)
.github/workflows/backend.yml
.github/workflows/release.yml
scripts/cross-build.sh

index 26a04551e2a6f6c26af972fcab34a97f60ced5c4..a135c87499bc36171cca8d39c17c1298626fa471 100644 (file)
@@ -44,18 +44,18 @@ jobs:
     runs-on: ubuntu-16.04
     strategy:
       matrix:
-        arch: [i686, x86_64, arm, armhf, aarch64, mips, mipsel, mips64, mips64el]
+        target: [i686, x86_64, arm, armhf, aarch64, mips, mipsel, mips64, mips64el]
     steps:
       - uses: actions/checkout@v2
       - name: Install packages
         run: |
           sudo apt-get update
           sudo apt-get install -y autoconf automake build-essential cmake curl file libtool
-      - name: Cross build (${{ matrix.arch }})
+      - name: Cross build (${{ matrix.target }})
         env:
-          ARCH: ${{ matrix.arch }}
-        run: ./scripts/cross-build.sh $ARCH
+          BUILD_TARGET: ${{ matrix.target }}
+        run: ./scripts/cross-build.sh
       - uses: actions/upload-artifact@v1
         with:
-          name: ttyd.${{ matrix.arch }}
+          name: ttyd.${{ matrix.target }}
           path: build/ttyd
index 2d8f817c5e7617adb1fd5a9206d96c0b3ba31874..1905121d81aff7c6bfa7d1cc700e1bee78cc1e02 100644 (file)
@@ -6,23 +6,45 @@ on:
     - "*"
 
 jobs:
+  release:
+    runs-on: ubuntu-16.04
+    outputs:
+      upload_url: ${{ steps.create_release.outputs.upload_url }} 
+    steps:
+      - name: Create Release
+        id: create_release
+        uses: actions/create-release@v1
+        env:
+          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
+        with:
+          tag_name: ${{ github.ref }}
+          release_name: ${{ github.ref }}
+          draft: true
+          prerelease: false
+
   build:
     runs-on: ubuntu-16.04
+    needs: release
+    strategy:
+      matrix:
+        target: [i686, x86_64, arm, armhf, aarch64, mips, mipsel, mips64, mips64el]
     steps:
       - uses: actions/checkout@v2
       - name: Install packages
         run: |
           sudo apt-get update
           sudo apt-get install -y autoconf automake build-essential cmake curl file libtool
-      - name: Build Release
-        run: |
-          mkdir -p bin
-          for arch in i686 x86_64 arm armhf aarch64 mips mipsel mips64 mips64el; do
-            ./scripts/cross-build.sh $arch
-            cp build/ttyd bin/ttyd_linux.$arch
-            sha256sum bin/ttyd_linux.$arch >> bin/SHA256SUMS
-          done
-      - uses: ncipollo/release-action@v1
+      - name: Cross build (${{ matrix.target }})
+        env:
+          BUILD_TARGET: ${{ matrix.target }}
+        run: ./scripts/cross-build.sh
+      - name: Upload assets
+        id: upload-release-asset
+        uses: actions/upload-release-asset@v1
+        env:
+          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
         with:
-          artifact: "bin/*"
-          token: ${{ secrets.GITHUB_TOKEN }}
+          upload_url: ${{ needs.release.outputs.upload_url }}
+          asset_path: build/ttyd
+          asset_name: ttyd.${{ matrix.target }}
+          asset_content_type: application/octet-stream
\ No newline at end of file
index 9d72a8c8e6f71209aacc6cfcd010ac8d5e31ab4e..ff80c6cd6556a0088be49f11a3eaf7a84302a247 100755 (executable)
@@ -1,12 +1,15 @@
 #!/bin/bash
-
+#
+# Example:
+#         env BUILD_TARGET=mips WITH_SSL=true ./scripts/cross-build.sh
+#
 set -eo pipefail
 
 CROSS_ROOT="${CROSS_ROOT:-/opt/cross}"
 STAGE_ROOT="${STAGE_ROOT:-/opt/stage}"
 BUILD_ROOT="${BUILD_ROOT:-/opt/build}"
-WITH_SSL="${WITH_SSL:-}"
-BUILD_TARGET="$1"
+BUILD_TARGET="${BUILD_TARGET:-x86_64}"
+WITH_SSL=${WITH_SSL:-false}
 
 ZLIB_VERSION="${ZLIB_VERSION:-1.2.11}"
 JSON_C_VERSION="${JSON_C_VERSION:-0.14}"
@@ -45,7 +48,7 @@ map_openssl_target() {
         aarch64) echo linux-aarch64 ;;
         mips|mipsel) echo linux-mips32 ;;
         mips64|mips64el) echo linux64-mips64 ;;
-        *) echo "unsupported target: $1" && exit 1
+        *) echo "unknown openssl target: $1" && exit 1
     esac
 }
 
@@ -93,7 +96,7 @@ build_libwebsockets() {
         sed -i 's/ websockets_shared//g' cmake/LibwebsocketsConfig.cmake.in
         sed -i '/PC_OPENSSL/d' CMakeLists.txt
         mkdir build && cd build
-        [ -z "${WITH_SSL}" ] && CMAKE_OPTIONS="-DLWS_WITH_SSL=OFF"
+        [ "${WITH_SSL}" = true ] || CMAKE_OPTIONS="-DLWS_WITH_SSL=OFF"
         cmake -DCMAKE_TOOLCHAIN_FILE="${BUILD_DIR}/cross-${TARGET}.cmake" "${CMAKE_OPTIONS}" \
             -DCMAKE_INSTALL_PREFIX="${STAGE_DIR}" \
             -DCMAKE_FIND_LIBRARY_SUFFIXES=".a" \
@@ -154,21 +157,21 @@ build() {
     build_zlib
     build_json-c
     build_libuv
-    [ -n "${WITH_SSL}" ] && build_openssl
+    [ "${WITH_SSL}" = true ] && build_openssl
     build_libwebsockets
     build_ttyd
 }
 
-case $1 in
+case ${BUILD_TARGET} in
     i686|x86_64|aarch64|mips|mipsel|mips64|mips64el)
-        build "$1-linux-musl" "$1"
+        build "${BUILD_TARGET}-linux-musl" "${BUILD_TARGET}"
         ;;
     arm)
-        build arm-linux-musleabi "$1"
+        build arm-linux-musleabi "${BUILD_TARGET}"
         ;;
     armhf)
-        build arm-linux-musleabihf "$1"
+        build arm-linux-musleabihf "${BUILD_TARGET}"
         ;;
     *)
-        echo "usage: $0 i686|x86_64|arm|armhf|aarch64|mips|mipsel|mips64|mips64el" && exit 1
+        echo "unknown cross target: ${BUILD_TARGET}" && exit 1
 esac