diff --git a/.github/workflows/backend.yml b/.github/workflows/backend.yml index 0ee6e39..2caaa32 100644 --- a/.github/workflows/backend.yml +++ b/.github/workflows/backend.yml @@ -23,7 +23,7 @@ jobs: matrix: target: [i686, x86_64, arm, armhf, aarch64, mips, mipsel, mips64, mips64el, s390x, win32] steps: - - uses: actions/checkout@v4 + - uses: https://devstar.cn/actions/checkout@v4 - name: Install packages run: | sudo apt-get update @@ -32,8 +32,3 @@ jobs: env: BUILD_TARGET: ${{ matrix.target }} run: ./scripts/cross-build.sh - - uses: actions/upload-artifact@v4 - with: - name: ttyd.${{ matrix.target }} - path: build/ttyd* - diff --git a/.github/workflows/docker.yml b/.github/workflows/docker.yml index 65db4f2..c65e258 100644 --- a/.github/workflows/docker.yml +++ b/.github/workflows/docker.yml @@ -12,7 +12,7 @@ jobs: packages: write contents: read steps: - - uses: actions/checkout@v4 + - uses: https://devstar.cn/actions/checkout@v4 - name: Install packages run: | sudo apt-get update @@ -25,32 +25,37 @@ jobs: [ "$arch" = "armv7" ] && arch="arm" mkdir -p dist/$arch && cp build/ttyd dist/$arch/ttyd done - - uses: docker/setup-qemu-action@v3 - - uses: docker/setup-buildx-action@v3 - - uses: docker/login-action@v3 + - uses: https://devstar.cn/alexios/setup-qemu-action@v3 + - uses: https://devstar.cn/alexios/setup-buildx-action@v3 + - uses: https://devstar.cn/alexios/login-action@v3 with: username: ${{ secrets.DOCKER_HUB_USER }} password: ${{ secrets.DOCKER_HUB_TOKEN }} - - uses: docker/login-action@v3 + - uses: alexios/login-action@v3 with: registry: ghcr.io username: ${{ github.actor }} password: ${{ secrets.GITHUB_TOKEN }} - name: Determine docker tags id: docker_tag + env: + DOCKER_USER: ${{ vars.DOCKER_HUB_USERNAME }} + PROJECT: ${{ vars.PROJECT_NAME }} run: | + FULL_IMAGE_NAME="${DOCKER_USER}/${PROJECT}" + case $GITHUB_REF in refs/tags/*) TAG_NAME=${GITHUB_REF#refs/tags/} - echo "DOCKER_TAG=tsl0922/ttyd:${TAG_NAME}" >> $GITHUB_ENV - echo "ALPINE_TAG=tsl0922/ttyd:${TAG_NAME}-alpine" >> $GITHUB_ENV + echo "DOCKER_TAG=${FULL_IMAGE_NAME}:${TAG_NAME}" >> $GITHUB_ENV + echo "ALPINE_TAG=${FULL_IMAGE_NAME}:${TAG_NAME}-alpine" >> $GITHUB_ENV ;; *) - echo "DOCKER_TAG=tsl0922/ttyd:latest" >> $GITHUB_ENV - echo "ALPINE_TAG=tsl0922/ttyd:alpine" >> $GITHUB_ENV + echo "DOCKER_TAG=${FULL_IMAGE_NAME}:latest" >> $GITHUB_ENV + echo "ALPINE_TAG=${FULL_IMAGE_NAME}:alpine" >> $GITHUB_ENV esac - name: build/push docker image - uses: docker/build-push-action@v6 + uses: https://devstar.cn/alexios/build-push-action@v6 with: context: . file: ./Dockerfile @@ -60,7 +65,7 @@ jobs: ${{ env.DOCKER_TAG }} ghcr.io/${{ env.DOCKER_TAG }} - name: build/push docker image (alpine) - uses: docker/build-push-action@v6 + uses: https://devstar.cn/alexios/build-push-action@v6 with: context: . file: ./Dockerfile.alpine diff --git a/.github/workflows/frontend.yml b/.github/workflows/frontend.yml index 792a21a..55cbce5 100644 --- a/.github/workflows/frontend.yml +++ b/.github/workflows/frontend.yml @@ -14,15 +14,16 @@ jobs: build: runs-on: ubuntu-22.04 steps: - - uses: actions/checkout@v4 - - uses: actions/setup-node@v4 + - uses: https://devstar.cn/actions/checkout@v4 + - uses: https://devstar.cn/actions/setup-node@v4 with: node-version: 18 - name: Run yarn install, check and build run: | corepack enable corepack prepare yarn@stable --activate - yarn install + yarn install --no-immutable + yarn add -D eslint-plugin-n yarn run check yarn run build working-directory: html diff --git a/scripts/cross-build.sh b/scripts/cross-build.sh index 8c350c5..3aed42e 100755 --- a/scripts/cross-build.sh +++ b/scripts/cross-build.sh @@ -16,9 +16,17 @@ MBEDTLS_VERSION="${MBEDTLS_VERSION:-2.28.5}" LIBUV_VERSION="${LIBUV_VERSION:-1.44.2}" LIBWEBSOCKETS_VERSION="${LIBWEBSOCKETS_VERSION:-4.3.3}" +BASE_URL="https://devstar.cn/alexios/zip-repo/releases/download" +URL_TOOLCHAIN="${BASE_URL}/v1.0/aarch64-linux-musl-cross.tgz" +URL_ZLIB="${BASE_URL}/v1.0/zlib-1.3.1.tar.gz" +URL_JSONC="${BASE_URL}/v1.0/json-c-0.17.tar.gz" +URL_MBEDTLS="${BASE_URL}/v1.0/mbedtls-2.28.5.tar.gz" +URL_LIBUV="${BASE_URL}/v1.0/libuv-v1.44.2.tar.gz" +URL_LWS="${BASE_URL}/v1.0/libwebsockets-4.3.3.tar.gz" + build_zlib() { echo "=== Building zlib-${ZLIB_VERSION} (${TARGET})..." - curl -fSsLo- "https://zlib.net/zlib-${ZLIB_VERSION}.tar.gz" | tar xz -C "${BUILD_DIR}" + curl -kfSsLo- "$URL_ZLIB" | tar xz -C "${BUILD_DIR}" pushd "${BUILD_DIR}"/zlib-"${ZLIB_VERSION}" env CHOST="${TARGET}" ./configure --static --archs="-fPIC" --prefix="${STAGE_DIR}" make -j"$(nproc)" install @@ -27,7 +35,7 @@ build_zlib() { build_json-c() { echo "=== Building json-c-${JSON_C_VERSION} (${TARGET})..." - curl -fSsLo- "https://s3.amazonaws.com/json-c_releases/releases/json-c-${JSON_C_VERSION}.tar.gz" | tar xz -C "${BUILD_DIR}" + curl -kfSsLo- "$URL_JSONC" | tar xz -C "${BUILD_DIR}" pushd "${BUILD_DIR}/json-c-${JSON_C_VERSION}" rm -rf build && mkdir -p build && cd build cmake -DCMAKE_TOOLCHAIN_FILE="${BUILD_DIR}/cross-${TARGET}.cmake" \ @@ -43,7 +51,7 @@ build_json-c() { build_mbedtls() { echo "=== Building mbedtls-${MBEDTLS_VERSION} (${TARGET})..." - curl -fSsLo- "https://github.com/ARMmbed/mbedtls/archive/v${MBEDTLS_VERSION}.tar.gz" | tar xz -C "${BUILD_DIR}" + curl -kfSsLo- "$URL_MBEDTLS" | tar xz -C "${BUILD_DIR}" pushd "${BUILD_DIR}/mbedtls-${MBEDTLS_VERSION}" rm -rf build && mkdir -p build && cd build cmake -DCMAKE_TOOLCHAIN_FILE="${BUILD_DIR}/cross-${TARGET}.cmake" \ @@ -57,7 +65,7 @@ build_mbedtls() { build_libuv() { echo "=== Building libuv-${LIBUV_VERSION} (${TARGET})..." - curl -fSsLo- "https://dist.libuv.org/dist/v${LIBUV_VERSION}/libuv-v${LIBUV_VERSION}.tar.gz" | tar xz -C "${BUILD_DIR}" + curl -kfSsLo- "$URL_LIBUV" | tar xz -C "${BUILD_DIR}" pushd "${BUILD_DIR}/libuv-v${LIBUV_VERSION}" ./autogen.sh env CFLAGS=-fPIC ./configure --disable-shared --enable-static --prefix="${STAGE_DIR}" --host="${TARGET}" @@ -83,7 +91,7 @@ EOF build_libwebsockets() { echo "=== Building libwebsockets-${LIBWEBSOCKETS_VERSION} (${TARGET})..." - curl -fSsLo- "https://github.com/warmcat/libwebsockets/archive/v${LIBWEBSOCKETS_VERSION}.tar.gz" | tar xz -C "${BUILD_DIR}" + curl -kfSsLo- "$URL_LWS" | tar xz -C "${BUILD_DIR}" pushd "${BUILD_DIR}/libwebsockets-${LIBWEBSOCKETS_VERSION}" sed -i 's/ websockets_shared//g' cmake/libwebsockets-config.cmake.in sed -i 's/ OR PC_OPENSSL_FOUND//g' lib/tls/CMakeLists.txt @@ -134,7 +142,6 @@ build() { ALIAS="$2" STAGE_DIR="${STAGE_ROOT}/${TARGET}" BUILD_DIR="${BUILD_ROOT}/${TARGET}" - MUSL_CC_URL="https://github.com/tsl0922/musl-toolchains/releases/download/2021-11-23" COMPONENTS="1" SYSTEM="Linux" @@ -144,12 +151,12 @@ build() { fi echo "=== Installing toolchain ${ALIAS} (${TARGET})..." - mkdir -p "${CROSS_ROOT}" && export PATH="${PATH}:${CROSS_ROOT}/bin" - curl -fSsLo- "${MUSL_CC_URL}/${TARGET}-cross.tgz" | tar xz -C "${CROSS_ROOT}" --strip-components=${COMPONENTS} - - echo "=== Building target ${ALIAS} (${TARGET})..." - + TOOLCHAIN_FILE="${TARGET}-cross.tgz" + DOWNLOAD_URL="${BASE_URL}/v1.0/${TOOLCHAIN_FILE}" + + echo "Downloading toolchain: $DOWNLOAD_URL" + curl -kfSsLo- "$DOWNLOAD_URL" | tar xz -C "${CROSS_ROOT}" --strip-components=${COMPONENTS} rm -rf "${STAGE_DIR}" "${BUILD_DIR}" mkdir -p "${STAGE_DIR}" "${BUILD_DIR}" export PKG_CONFIG_PATH="${STAGE_DIR}/lib/pkgconfig"