diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 2c614d1..9a4fd15 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -62,55 +62,55 @@ jobs: files: subconverter_linux64.tar.gz draft: true -# armv7_build: -# name: Linux armv7 Build -# runs-on: [self-hosted, linux, ARM] -# steps: -# - uses: actions/checkout@v3 -# - name: Add commit id into version -# if: ${{ !startsWith(github.ref, 'refs/tags/') }} -# run: SHA=$(git rev-parse --short HEAD) && sed -i 's/\(v[0-9]\.[0-9]\.[0-9]\)/\1-'"$SHA"'/' src/version.h -# - name: Build -# run: docker run --rm -v $GITHUB_WORKSPACE:/root/workdir multiarch/alpine:armv7-latest-stable /bin/sh -c "apk add bash git nodejs npm && cd /root/workdir && chmod +x scripts/build.alpine.release.sh && bash scripts/build.alpine.release.sh" -# - name: Upload -# uses: actions/upload-artifact@v3 -# with: -# name: subconverter_armv7 -# path: subconverter/ -# - name: Package Release -# if: ${{ github.event_name != 'pull_request' && startsWith(github.ref, 'refs/tags/') }} -# run: tar czf subconverter_armv7.tar.gz subconverter -# - name: Draft Release -# uses: softprops/action-gh-release@v1 -# if: ${{ github.event_name != 'pull_request' && startsWith(github.ref, 'refs/tags/') }} -# with: -# files: subconverter_armv7.tar.gz -# draft: true -# -# aarch64_build: -# name: Linux aarch64 Build -# runs-on: [self-hosted, linux, ARM64] -# steps: -# - uses: actions/checkout@v3 -# - name: Add commit id into version -# if: ${{ !startsWith(github.ref, 'refs/tags/') }} -# run: SHA=$(git rev-parse --short HEAD) && sed -i 's/\(v[0-9]\.[0-9]\.[0-9]\)/\1-'"$SHA"'/' src/version.h -# - name: Build -# run: docker run --rm -v $GITHUB_WORKSPACE:/root/workdir multiarch/alpine:aarch64-latest-stable /bin/sh -c "apk add bash git nodejs npm && cd /root/workdir && chmod +x scripts/build.alpine.release.sh && bash scripts/build.alpine.release.sh" -# - name: Upload -# uses: actions/upload-artifact@v3 -# with: -# name: subconverter_aarch64 -# path: subconverter/ -# - name: Package Release -# if: ${{ github.event_name != 'pull_request' && startsWith(github.ref, 'refs/tags/') }} -# run: tar czf subconverter_aarch64.tar.gz subconverter -# - name: Draft Release -# uses: softprops/action-gh-release@v1 -# if: ${{ github.event_name != 'pull_request' && startsWith(github.ref, 'refs/tags/') }} -# with: -# files: subconverter_aarch64.tar.gz -# draft: true + armv7_build: + name: Linux armv7 Build + runs-on: [self-hosted, linux, ARM] + steps: + - uses: actions/checkout@v3 + - name: Add commit id into version + if: ${{ !startsWith(github.ref, 'refs/tags/') }} + run: SHA=$(git rev-parse --short HEAD) && sed -i 's/\(v[0-9]\.[0-9]\.[0-9]\)/\1-'"$SHA"'/' src/version.h + - name: Build + run: docker run --rm -v $GITHUB_WORKSPACE:/root/workdir multiarch/alpine:armv7-latest-stable /bin/sh -c "apk add bash git nodejs npm && cd /root/workdir && chmod +x scripts/build.alpine.release.sh && bash scripts/build.alpine.release.sh" + - name: Upload + uses: actions/upload-artifact@v3 + with: + name: subconverter_armv7 + path: subconverter/ + - name: Package Release + if: ${{ github.event_name != 'pull_request' && startsWith(github.ref, 'refs/tags/') }} + run: tar czf subconverter_armv7.tar.gz subconverter + - name: Draft Release + uses: softprops/action-gh-release@v1 + if: ${{ github.event_name != 'pull_request' && startsWith(github.ref, 'refs/tags/') }} + with: + files: subconverter_armv7.tar.gz + draft: true + + aarch64_build: + name: Linux aarch64 Build + runs-on: [self-hosted, linux, ARM64] + steps: + - uses: actions/checkout@v3 + - name: Add commit id into version + if: ${{ !startsWith(github.ref, 'refs/tags/') }} + run: SHA=$(git rev-parse --short HEAD) && sed -i 's/\(v[0-9]\.[0-9]\.[0-9]\)/\1-'"$SHA"'/' src/version.h + - name: Build + run: docker run --rm -v $GITHUB_WORKSPACE:/root/workdir multiarch/alpine:aarch64-latest-stable /bin/sh -c "apk add bash git nodejs npm && cd /root/workdir && chmod +x scripts/build.alpine.release.sh && bash scripts/build.alpine.release.sh" + - name: Upload + uses: actions/upload-artifact@v3 + with: + name: subconverter_aarch64 + path: subconverter/ + - name: Package Release + if: ${{ github.event_name != 'pull_request' && startsWith(github.ref, 'refs/tags/') }} + run: tar czf subconverter_aarch64.tar.gz subconverter + - name: Draft Release + uses: softprops/action-gh-release@v1 + if: ${{ github.event_name != 'pull_request' && startsWith(github.ref, 'refs/tags/') }} + with: + files: subconverter_aarch64.tar.gz + draft: true macos_build: name: macOS Build diff --git a/.github/workflows/docker.yml b/.github/workflows/docker.yml index 738d74e..386f68c 100644 --- a/.github/workflows/docker.yml +++ b/.github/workflows/docker.yml @@ -106,7 +106,7 @@ jobs: with: platforms: linux/386 context: scripts/ - tags: asdlokj1qpi23/subconverter:latest-x86 + tags: asdlokj1qpi23/subconverter:latest build-args: | SHA=${{ steps.vars.outputs.sha_short }} outputs: type=image,push=true @@ -127,7 +127,7 @@ jobs: with: platforms: linux/386 context: scripts/ - tags: asdlokj1qpi23/subconverter:${{steps.version.outputs.result}}-x86 + tags: asdlokj1qpi23/subconverter:${{steps.version.outputs.result}} outputs: type=image,push=true - name: Save digest @@ -144,150 +144,150 @@ jobs: name: digest_386 path: /tmp/digest.txt -# armv7_build: -# name: Build ARMv7 Image -# runs-on: [self-hosted, linux, ARM] -# steps: -# - name: Checkout base -# uses: actions/checkout@v3 -# with: -# fetch-depth: 0 -# -# - name: Set up Docker Buildx -# uses: docker/setup-buildx-action@v2 -# -# - name: Docker login -# uses: docker/login-action@v2 -# with: -# username: ${{ secrets.DOCKER_USERNAME }} -# password: ${{ secrets.DOCKER_PASSWORD }} -# -# - name: Get commit SHA -# id: vars -# run: echo "sha_short=$(git rev-parse --short HEAD)" >> $GITHUB_OUTPUT -# -# - name: Build and export -# id: build -# if: github.ref == 'refs/heads/master' -# uses: docker/build-push-action@v3 -# with: -# platforms: linux/arm/v7 -# context: scripts/ -# tags: asdlokj1qpi23/subconverter:latest-armv7 -# build-args: | -# SHA=${{ steps.vars.outputs.sha_short }} -# THREADS=4 -# outputs: type=image,push=true -# -# - name: Replace tag without `v` -# if: startsWith(github.ref, 'refs/tags/') -# uses: actions/github-script@v6 -# id: version -# with: -# script: | -# return context.payload.ref.replace(/\/?refs\/tags\/v/, '') -# result-encoding: string -# -# - name: Build release and export -# id: build_rel -# if: startsWith(github.ref, 'refs/tags/') -# uses: docker/build-push-action@v3 -# with: -# platforms: linux/arm/v7 -# context: scripts/ -# tags: asdlokj1qpi23/subconverter:${{steps.version.outputs.result}}-armv7 -# build-args: | -# THREADS=4 -# outputs: type=image,push=true -# -# - name: Save digest -# if: github.ref == 'refs/heads/master' -# run: echo ${{ steps.build.outputs.digest }} > /tmp/digest.txt -# -# - name: Save release digest -# if: startsWith(github.ref, 'refs/tags/') -# run: echo ${{ steps.build_rel.outputs.digest }} > /tmp/digest.txt -# -# - name: Upload artifact -# uses: actions/upload-artifact@v3 -# with: -# name: digest_armv7 -# path: /tmp/digest.txt -# -# arm64_build: -# name: Build ARM64 Image -# runs-on: [self-hosted, linux, ARM64] -# steps: -# - name: Checkout base -# uses: actions/checkout@v3 -# with: -# fetch-depth: 0 -# -# - name: Set up Docker Buildx -# uses: docker/setup-buildx-action@v2 -# -# - name: Docker login -# uses: docker/login-action@v2 -# with: -# username: ${{ secrets.DOCKER_USERNAME }} -# password: ${{ secrets.DOCKER_PASSWORD }} -# -# - name: Get commit SHA -# id: vars -# run: echo "sha_short=$(git rev-parse --short HEAD)" >> $GITHUB_OUTPUT -# -# - name: Build and export -# id: build -# if: github.ref == 'refs/heads/master' -# uses: docker/build-push-action@v3 -# with: -# platforms: linux/arm64 -# context: scripts/ -# tags: asdlokj1qpi23/subconverter:latest-arm64 -# build-args: | -# SHA=${{ steps.vars.outputs.sha_short }} -# THREADS=4 -# outputs: type=image,push=true -# -# - name: Replace tag without `v` -# if: startsWith(github.ref, 'refs/tags/') -# uses: actions/github-script@v6 -# id: version -# with: -# script: | -# return context.payload.ref.replace(/\/?refs\/tags\/v/, '') -# result-encoding: string -# -# - name: Build release and export -# id: build_rel -# if: startsWith(github.ref, 'refs/tags/') -# uses: docker/build-push-action@v3 -# with: -# platforms: linux/arm64 -# context: scripts/ -# tags: asdlokj1qpi23/subconverter:${{steps.version.outputs.result}}-arm64 -# build-args: | -# THREADS=4 -# outputs: type=image,push=true -# -# - name: Save digest -# if: github.ref == 'refs/heads/master' -# run: echo ${{ steps.build.outputs.digest }} > /tmp/digest.txt -# -# - name: Save release digest -# if: startsWith(github.ref, 'refs/tags/') -# run: echo ${{ steps.build_rel.outputs.digest }} > /tmp/digest.txt -# -# - name: Upload artifact -# uses: actions/upload-artifact@v3 -# with: -# name: digest_arm64 -# path: /tmp/digest.txt + armv7_build: + name: Build ARMv7 Image + runs-on: [self-hosted, linux, ARM] + steps: + - name: Checkout base + uses: actions/checkout@v3 + with: + fetch-depth: 0 + + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@v2 + + - name: Docker login + uses: docker/login-action@v2 + with: + username: ${{ secrets.DOCKER_USERNAME }} + password: ${{ secrets.DOCKER_PASSWORD }} + + - name: Get commit SHA + id: vars + run: echo "sha_short=$(git rev-parse --short HEAD)" >> $GITHUB_OUTPUT + + - name: Build and export + id: build + if: github.ref == 'refs/heads/master' + uses: docker/build-push-action@v3 + with: + platforms: linux/arm/v7 + context: scripts/ + tags: asdlokj1qpi23/subconverter:latest-armv7 + build-args: | + SHA=${{ steps.vars.outputs.sha_short }} + THREADS=4 + outputs: type=image,push=true + + - name: Replace tag without `v` + if: startsWith(github.ref, 'refs/tags/') + uses: actions/github-script@v6 + id: version + with: + script: | + return context.payload.ref.replace(/\/?refs\/tags\/v/, '') + result-encoding: string + + - name: Build release and export + id: build_rel + if: startsWith(github.ref, 'refs/tags/') + uses: docker/build-push-action@v3 + with: + platforms: linux/arm/v7 + context: scripts/ + tags: asdlokj1qpi23/subconverter:${{steps.version.outputs.result}}-armv7 + build-args: | + THREADS=4 + outputs: type=image,push=true + + - name: Save digest + if: github.ref == 'refs/heads/master' + run: echo ${{ steps.build.outputs.digest }} > /tmp/digest.txt + + - name: Save release digest + if: startsWith(github.ref, 'refs/tags/') + run: echo ${{ steps.build_rel.outputs.digest }} > /tmp/digest.txt + + - name: Upload artifact + uses: actions/upload-artifact@v3 + with: + name: digest_armv7 + path: /tmp/digest.txt + + arm64_build: + name: Build ARM64 Image + runs-on: [self-hosted, linux, ARM64] + steps: + - name: Checkout base + uses: actions/checkout@v3 + with: + fetch-depth: 0 + + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@v2 + + - name: Docker login + uses: docker/login-action@v2 + with: + username: ${{ secrets.DOCKER_USERNAME }} + password: ${{ secrets.DOCKER_PASSWORD }} + + - name: Get commit SHA + id: vars + run: echo "sha_short=$(git rev-parse --short HEAD)" >> $GITHUB_OUTPUT + + - name: Build and export + id: build + if: github.ref == 'refs/heads/master' + uses: docker/build-push-action@v3 + with: + platforms: linux/arm64 + context: scripts/ + tags: asdlokj1qpi23/subconverter:latest-arm64 + build-args: | + SHA=${{ steps.vars.outputs.sha_short }} + THREADS=4 + outputs: type=image,push=true + + - name: Replace tag without `v` + if: startsWith(github.ref, 'refs/tags/') + uses: actions/github-script@v6 + id: version + with: + script: | + return context.payload.ref.replace(/\/?refs\/tags\/v/, '') + result-encoding: string + + - name: Build release and export + id: build_rel + if: startsWith(github.ref, 'refs/tags/') + uses: docker/build-push-action@v3 + with: + platforms: linux/arm64 + context: scripts/ + tags: asdlokj1qpi23/subconverter:${{steps.version.outputs.result}}-arm64 + build-args: | + THREADS=4 + outputs: type=image,push=true + + - name: Save digest + if: github.ref == 'refs/heads/master' + run: echo ${{ steps.build.outputs.digest }} > /tmp/digest.txt + + - name: Save release digest + if: startsWith(github.ref, 'refs/tags/') + run: echo ${{ steps.build_rel.outputs.digest }} > /tmp/digest.txt + + - name: Upload artifact + uses: actions/upload-artifact@v3 + with: + name: digest_arm64 + path: /tmp/digest.txt build: name: Build -# needs: [amd64_build, x86_build, armv7_build, arm64_build] - needs: [amd64_build, x86_build] + needs: [amd64_build, x86_build, armv7_build, arm64_build] +# needs: [amd64_build, x86_build] runs-on: ubuntu-latest steps: - name: Checkout base