From 8224150952e3b34fd6819ec30777bb4f6fac7c53 Mon Sep 17 00:00:00 2001 From: AlinsRan Date: Mon, 29 Jan 2024 05:36:13 +0800 Subject: [PATCH] test: ci arm upload --- .github/workflows/publish-deb-arm.yml | 107 ++++++++++++++++++++++++++ 1 file changed, 107 insertions(+) create mode 100644 .github/workflows/publish-deb-arm.yml diff --git a/.github/workflows/publish-deb-arm.yml b/.github/workflows/publish-deb-arm.yml new file mode 100644 index 000000000..ef79b3e59 --- /dev/null +++ b/.github/workflows/publish-deb-arm.yml @@ -0,0 +1,107 @@ +name: Build and Publish DEB Package ARM + +on: + push: + +jobs: + publish_apisix: + name: Build and Publish deb Package + runs-on: buildjet-2vcpu-ubuntu-2204-arm + timeout-minutes: 60 + env: + VAR_DEB_WORKBENCH_DIR: /tmp/output + VAR_COS_BUCKET_REPO: ${{ secrets.VAR_COS_BUCKET_REPO }} + VAR_COS_BUCKET_CI: ${{ secrets.VAR_COS_BUCKET_CI }} + VAR_OS: debian + VAR_CODENAME: bullseye + VAR_OS_RELEASE: bullseye-slim + ARCH: arm64 + + steps: + - name: Check out code + uses: actions/checkout@v2.3.5 + with: + submodules: recursive + + - name: Init basic publish env + run: | + sudo apt-get update + mkdir -p "${VAR_DEB_WORKBENCH_DIR}" + + - name: Extract Tags version + shell: bash + run: | + echo "TAG_VERSION=3.8.0" >> "$GITHUB_ENV" + + - name: Extract Tags Type + shell: bash + run: | + echo "TAG_TYPE=apisix" >> "$GITHUB_ENV" + + - name: Check Tags Type + if: ${{ env.TAG_TYPE != 'apisix' && env.TAG_TYPE != 'apisix-base' }} + run: | + echo "##[error]Tag type is not correct, or not support, please check it." + exit 1 + + - name: Build apisix-base deb Package + if: ${{ env.TAG_TYPE == 'apisix-base' }} + run: | + make package type=deb app=${TAG_TYPE} checkout=${TAG_VERSION} version=${TAG_VERSION} image_base=${VAR_OS} image_tag=${VAR_OS_RELEASE} openresty=apisix-base + mv ./output/${TAG_TYPE}_${TAG_VERSION}-0~${VAR_OS}${VAR_OS_RELEASE}_${ARCH}.deb ${VAR_DEB_WORKBENCH_DIR} + + - name: Build apisix deb Package + if: ${{ env.TAG_TYPE == 'apisix' }} + run: | + wget https://raw.githubusercontent.com/apache/apisix/${TAG_VERSION}/.requirements && source .requirements + + make package type=deb app=${TAG_TYPE} checkout=${TAG_VERSION} version=${TAG_VERSION} image_base=${VAR_OS} image_tag=${VAR_OS_RELEASE} openresty=apisix-runtime runtime_version=${APISIX_RUNTIME} + mv ./output/${TAG_TYPE}_${TAG_VERSION}-0~${VAR_OS}${VAR_OS_RELEASE}_${ARCH}.deb ${VAR_DEB_WORKBENCH_DIR} + + - name: Build apisix-runtime deb Package + if: ${{ env.TAG_TYPE == 'apisix-runtime' }} + run: | + echo build ${TAG_TYPE} deb package + echo version ${TAG_VERSION} + + make package type=deb app=${TAG_TYPE} checkout=${TAG_VERSION} version=${TAG_VERSION} image_base=${VAR_OS} image_tag=${VAR_OS_RELEASE} openresty=apisix-runtime + mv ./output/${TAG_TYPE}_${TAG_VERSION}-0~${VAR_OS}${VAR_OS_RELEASE}_${ARCH}.deb ${VAR_DEB_WORKBENCH_DIR} + + - name: Upload apisix/apisix-runtime/apisix-base Artifact + uses: actions/upload-artifact@v4.0.0 + with: + name: "${{ env.TAG_TYPE }}_${{ env.TAG_VERSION }}-0~${{ env.VAR_OS }}${{ env.VAR_OS_RELEASE }}_${{ env.ARCH }}.deb" + path: "${{ env.VAR_DEB_WORKBENCH_DIR }}/${{ env.TAG_TYPE}}_${{ env.TAG_VERSION }}-0~${{ env.VAR_OS }}${{ env.VAR_OS_RELEASE }}_${{ env.ARCH }}.deb" + + - name: DEB repo deps init + env: + TENCENT_COS_SECRETID: ${{ secrets.TENCENT_COS_SECRETID }} + TENCENT_COS_SECRETKEY: ${{ secrets.TENCENT_COS_SECRETKEY }} + run: | + sudo pip install coscmd + sudo -E ./utils/publish-deb.sh init_cos_utils + + - name: DEB repo init for debian + run: | + sudo -E ./utils/publish-deb.sh repo_clone + + - name: DEB repo package update + env: + DEB_GPG_MAIL: ${{ secrets.DEB_GPG_MAIL }} + GPG_NAME: ${{ secrets.GPG_NAME }} + GPG_MAIL: ${{ secrets.GPG_MAIL }} + run: | + echo "${{ secrets.DEB_GPG_PRIV_KEY }}" >> /tmp/deb-gpg-publish.private + echo "${{ secrets.DEB_GPG_PASSPHRASE }}" >> /tmp/deb-gpg-publish.passphrase + sudo -E ./utils/publish-deb.sh init_freight_utils + sudo -E ./utils/publish-deb.sh init_gpg + + - name: DEB repo backup for debian + run: | + sudo -E ./utils/publish-deb.sh dists_backup + + - name: DEB repo refresh for debian + run: | + sudo -E ./utils/publish-deb.sh repo_rebuild + sudo -E ./utils/publish-deb.sh repo_ci_upload +