diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 8f847bc03d..d9a1ddd69e 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -25,9 +25,8 @@ jobs: needs: prerelease strategy: matrix: - build-type: [ 'standard', 'lite' ] target-platform: [ '', 'android', 'freebsd', 'linux_musl', 'linux_musl_arm' ] - name: Release ${{ matrix.target-platform && format('{0} ', matrix.target-platform) || '' }}${{ matrix.build-type == 'lite' && 'Lite' || '' }} + name: Release ${{ matrix.target-platform && format('{0} ', matrix.target-platform) || '' }} runs-on: ubuntu-latest steps: @@ -64,7 +63,7 @@ jobs: - name: Build run: | - bash build.sh release ${{ matrix.build-type == 'lite' && 'lite' || '' }} ${{ matrix.target-platform }} + bash build.sh release ${{ matrix.target-platform }} env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} FRONTEND_REPO: ${{ vars.FRONTEND_REPO }} diff --git a/.github/workflows/release_docker.yml b/.github/workflows/release_docker.yml index 69f34715ea..a8340abab5 100644 --- a/.github/workflows/release_docker.yml +++ b/.github/workflows/release_docker.yml @@ -30,7 +30,6 @@ env: IMAGE_NAME_DOCKERHUB: openlist REGISTRY: ghcr.io ARTIFACT_NAME: 'binaries_docker_release' - ARTIFACT_NAME_LITE: 'binaries_docker_release_lite' RELEASE_PLATFORMS: 'linux/amd64,linux/arm64,linux/arm/v7,linux/386,linux/arm/v6,linux/ppc64le,linux/riscv64,linux/loong64' ### Temporarily disable Docker builds for linux/s390x architectures for unknown reasons. IMAGE_PUSH: ${{ github.event_name == 'push' || github.event_name == 'workflow_dispatch' }} @@ -78,46 +77,6 @@ jobs: !build/*.tgz !build/musl-libs/** - build_binary_lite: - name: Build Binaries for Docker Release (Lite) - runs-on: ubuntu-latest - steps: - - name: Checkout - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7 - - - uses: actions/setup-go@b7ad1dad31e06c5925ef5d2fc7ad053ef454303e # v7 - with: - go-version: '1.27.3' - - - name: Cache Musl - id: cache-musl - uses: actions/cache@55cc8345863c7cc4c66a329aec7e433d2d1c52a9 # v6 - with: - path: build/musl-libs - key: docker-musl-libs-v2 - - - name: Download Musl Library - if: steps.cache-musl.outputs.cache-hit != 'true' - run: bash build.sh prepare lite docker-multiplatform - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - - - name: Build go binary (release) - run: bash build.sh release lite docker-multiplatform - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - FRONTEND_REPO: ${{ vars.FRONTEND_REPO }} - - - name: Upload artifacts - uses: actions/upload-artifact@cf430e030ddbb5b0abf93d22962f4752f3646cd9 # v7 - with: - name: ${{ env.ARTIFACT_NAME_LITE }} - overwrite: true - path: | - build/ - !build/*.tgz - !build/musl-libs/** - release_docker: needs: build_binary name: Release Docker image @@ -201,87 +160,3 @@ jobs: tags: ${{ steps.meta.outputs.tags }} labels: ${{ steps.meta.outputs.labels }} platforms: ${{ env.RELEASE_PLATFORMS }} - - release_docker_lite: - needs: build_binary_lite - name: Release Docker image (Lite) - runs-on: ubuntu-latest - strategy: - matrix: - image: ["latest", "ffmpeg", "aria2", "aio"] - include: - - image: "latest" - base_image_tag: "base" - build_arg: "" - tag_favor: "suffix=-lite,onlatest=true" - - image: "ffmpeg" - base_image_tag: "ffmpeg" - build_arg: INSTALL_FFMPEG=true - tag_favor: "suffix=-lite-ffmpeg,onlatest=true" - - image: "aria2" - base_image_tag: "aria2" - build_arg: INSTALL_ARIA2=true - tag_favor: "suffix=-lite-aria2,onlatest=true" - - image: "aio" - base_image_tag: "aio" - build_arg: | - INSTALL_FFMPEG=true - INSTALL_ARIA2=true - tag_favor: "suffix=-lite-aio,onlatest=true" - steps: - - name: Checkout - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7 - - uses: actions/download-artifact@9000827ccba6bdab643e8b6fd33ac0654aef8333 # v8 - with: - name: ${{ env.ARTIFACT_NAME_LITE }} - path: 'build/' - - - name: Set up QEMU - uses: docker/setup-qemu-action@99012661954931238ded8c8b007157a8430204e1 # v4 - - - name: Set up Docker Buildx - uses: docker/setup-buildx-action@f87e5991a6d7451dcb8d9637bfbc97413f497069 # v4 - - - name: Login to GitHub Container Registry - if: env.IMAGE_PUSH == 'true' - uses: docker/login-action@81c6f93d4bc991e510b342a00b419b3bb4efc5c6 # v4 - with: - registry: ${{ env.REGISTRY }} - username: ${{ github.actor }} - password: ${{ secrets.GITHUB_TOKEN }} - - - name: Login to DockerHub Container Registry - if: env.IMAGE_PUSH == 'true' - uses: docker/login-action@81c6f93d4bc991e510b342a00b419b3bb4efc5c6 # v4 - with: - username: ${{ vars.DOCKERHUB_ORG_NAME_BACKUP || env.DOCKERHUB_ORG_NAME }} - password: ${{ secrets.DOCKERHUB_TOKEN }} - - - name: Docker meta - id: meta - uses: docker/metadata-action@dc802804100637a589fabce1cb79ff13a1411302 # v6 - with: - images: | - ${{ env.REGISTRY }}/${{ env.GHCR_ORG_NAME }}/${{ env.IMAGE_NAME }} - ${{ env.DOCKERHUB_ORG_NAME }}/${{ env.IMAGE_NAME_DOCKERHUB }} - tags: > - ${{ github.event_name == 'workflow_dispatch' - && format('type=raw,value={0}', github.event.inputs.manual_tag) - || format('type=raw,value={0}', github.ref_name) }} - flavor: | - latest=${{ github.event_name == 'push' || github.event.inputs.as_latest == 'true' }} - ${{ matrix.tag_favor }} - - - name: Build and push - id: docker_build - uses: docker/build-push-action@c3c9e263c25d99ce0380d002d59b67737d91b0dc # v7 - with: - context: . - file: Dockerfile.ci - push: ${{ env.IMAGE_PUSH == 'true' }} - build-args: | - BASE_IMAGE_TAG=${{ matrix.base_image_tag }} - ${{ matrix.build_arg }} - tags: ${{ steps.meta.outputs.tags }} - labels: ${{ steps.meta.outputs.labels }} - platforms: ${{ env.RELEASE_PLATFORMS }} diff --git a/build.sh b/build.sh index 2ba5f1cc13..1ebf7fd392 100644 --- a/build.sh +++ b/build.sh @@ -12,12 +12,6 @@ if [ -n "$GITHUB_TOKEN" ]; then githubAuthArgs="--header \"Authorization: Bearer $GITHUB_TOKEN\"" fi -# Check for lite parameter -useLite=false -if [[ "$*" == *"lite"* ]]; then - useLite=true -fi - if [ "$1" = "dev" ]; then version="dev" webVersion="rolling" @@ -33,11 +27,6 @@ fi echo "backend version: $version" echo "frontend version: $webVersion" -if [ "$useLite" = true ]; then - echo "using lite frontend" -else - echo "using standard frontend" -fi ldflags="\ -w -s \ @@ -100,8 +89,7 @@ FetchWebRolling() { pre_release_json=$(eval "curl -fsSL --max-time 2 $githubAuthArgs -H \"Accept: application/vnd.github.v3+json\" \"https://api.github.com/repos/$frontendRepo/releases/tags/edge\"") pre_release_assets=$(echo "$pre_release_json" | jq -r '.assets[].browser_download_url') - # There is no lite for rolling - pre_release_tar_url=$(echo "$pre_release_assets" | grep "openlist-frontend-dist" | grep -v "lite" | grep "\.tar\.gz$") + pre_release_tar_url=$(echo "$pre_release_assets" | grep "openlist-frontend-dist" | grep "\.tar\.gz$") curl -fsSL "$pre_release_tar_url" -o dist.tar.gz rm -rf public/dist && mkdir -p public/dist @@ -112,12 +100,7 @@ FetchWebRolling() { FetchWebRelease() { release_json=$(eval "curl -fsSL --max-time 2 $githubAuthArgs -H \"Accept: application/vnd.github.v3+json\" \"https://api.github.com/repos/$frontendRepo/releases/latest\"") release_assets=$(echo "$release_json" | jq -r '.assets[].browser_download_url') - - if [ "$useLite" = true ]; then - release_tar_url=$(echo "$release_assets" | grep "openlist-frontend-dist-lite" | grep "\.tar\.gz$") - else - release_tar_url=$(echo "$release_assets" | grep "openlist-frontend-dist" | grep -v "lite" | grep "\.tar\.gz$") - fi + release_tar_url=$(echo "$release_assets" | grep "openlist-frontend-dist" | grep "\.tar\.gz$") curl -fsSL "$release_tar_url" -o dist.tar.gz rm -rf public/dist && mkdir -p public/dist @@ -563,52 +546,39 @@ MakeRelease() { rm -rv compress fi mkdir compress - - # Add -lite suffix if useLite is true - liteSuffix="" - if [ "$useLite" = true ]; then - liteSuffix="-lite" - fi - + for i in $(find . -type f -name "$appName-linux-*"); do cp "$i" "$appName" - tar -czvf compress/"$i$liteSuffix".tar.gz "$appName" + tar -czvf compress/"$i".tar.gz "$appName" rm -f "$appName" done for i in $(find . -type f -name "$appName-android-*"); do cp "$i" "$appName" - tar -czvf compress/"$i$liteSuffix".tar.gz "$appName" + tar -czvf compress/"$i".tar.gz "$appName" rm -f "$appName" done for i in $(find . -type f -name "$appName-darwin-*"); do cp "$i" "$appName" - tar -czvf compress/"$i$liteSuffix".tar.gz "$appName" + tar -czvf compress/"$i".tar.gz "$appName" rm -f "$appName" done for i in $(find . -type f -name "$appName-freebsd-*"); do cp "$i" "$appName" - tar -czvf compress/"$i$liteSuffix".tar.gz "$appName" + tar -czvf compress/"$i".tar.gz "$appName" rm -f "$appName" done for i in $(find . -type f \( -name "$appName-windows-*" -o -name "$appName-windows7-*" \)); do cp "$i" "$appName".exe - zip compress/$(echo $i | sed 's/\.[^.]*$//')$liteSuffix.zip "$appName".exe + zip compress/$(echo $i | sed 's/\.[^.]*$//').zip "$appName".exe rm -f "$appName".exe done cd compress - - # Handle MD5 filename - add -lite suffix only if not already present - md5FileName="$1" - if [ "$useLite" = true ] && [[ "$1" != *"-lite.txt" ]]; then - md5FileName=$(echo "$1" | sed 's/\.txt$/-lite.txt/') - fi - - find . -type f -print0 | xargs -0 md5sum >"$md5FileName" - cat "$md5FileName" + + find . -type f -print0 | xargs -0 md5sum >"$1" + cat "$1" cd ../.. } -# Parse parameters to handle lite parameter position flexibility buildType="" dockerType="" otherParam="" @@ -625,9 +595,6 @@ for arg in "$@"; do dockerType="$arg" fi ;; - lite) - # lite parameter is already handled above - ;; *) if [ -z "$otherParam" ]; then otherParam="$arg" @@ -659,41 +626,21 @@ elif [ "$buildType" = "release" -o "$buildType" = "beta" ]; then BuildDockerMultiplatform elif [ "$dockerType" = "linux_musl_arm" ]; then BuildReleaseLinuxMuslArm - if [ "$useLite" = true ]; then - MakeRelease "md5-linux-musl-arm-lite.txt" - else - MakeRelease "md5-linux-musl-arm.txt" - fi + MakeRelease "md5-linux-musl-arm.txt" elif [ "$dockerType" = "linux_musl" ]; then BuildReleaseLinuxMusl - if [ "$useLite" = true ]; then - MakeRelease "md5-linux-musl-lite.txt" - else - MakeRelease "md5-linux-musl.txt" - fi + MakeRelease "md5-linux-musl.txt" elif [ "$dockerType" = "android" ]; then BuildReleaseAndroid - if [ "$useLite" = true ]; then - MakeRelease "md5-android-lite.txt" - else - MakeRelease "md5-android.txt" - fi + MakeRelease "md5-android.txt" elif [ "$dockerType" = "freebsd" ]; then BuildReleaseFreeBSD - if [ "$useLite" = true ]; then - MakeRelease "md5-freebsd-lite.txt" - else - MakeRelease "md5-freebsd.txt" - fi + MakeRelease "md5-freebsd.txt" elif [ "$dockerType" = "web" ]; then echo "web only" else BuildRelease - if [ "$useLite" = true ]; then - MakeRelease "md5-lite.txt" - else - MakeRelease "md5.txt" - fi + MakeRelease "md5.txt" fi elif [ "$buildType" = "prepare" ]; then if [ "$dockerType" = "docker-multiplatform" ]; then @@ -701,34 +648,19 @@ elif [ "$buildType" = "prepare" ]; then fi elif [ "$buildType" = "zip" ]; then if [ -n "$otherParam" ]; then - if [ "$useLite" = true ]; then - MakeRelease "$otherParam-lite.txt" - else - MakeRelease "$otherParam.txt" - fi + MakeRelease "$otherParam.txt" elif [ -n "$dockerType" ]; then - if [ "$useLite" = true ]; then - MakeRelease "$dockerType-lite.txt" - else - MakeRelease "$dockerType.txt" - fi + MakeRelease "$dockerType.txt" else - if [ "$useLite" = true ]; then - MakeRelease "md5-lite.txt" - else - MakeRelease "md5.txt" - fi + MakeRelease "md5.txt" fi else echo -e "Parameter error" - echo -e "Usage: $0 {dev|beta|release|zip|prepare} [docker|docker-multiplatform|linux_musl_arm|linux_musl|android|freebsd|web] [lite] [other_params]" + echo -e "Usage: $0 {dev|beta|release|zip|prepare} [docker|docker-multiplatform|linux_musl_arm|linux_musl|android|freebsd|web] [other_params]" echo -e "Examples:" echo -e " $0 dev" - echo -e " $0 dev lite" echo -e " $0 dev docker" - echo -e " $0 dev docker lite" echo -e " $0 release" - echo -e " $0 release lite" - echo -e " $0 release docker lite" + echo -e " $0 release docker" echo -e " $0 release linux_musl" fi