From f68b2fca6d2a86577793a397b100cbc08b4b8b38 Mon Sep 17 00:00:00 2001 From: Peefy Date: Wed, 3 Dec 2025 23:08:31 +0800 Subject: [PATCH] fix: kcl linux release in CI Signed-off-by: Peefy --- .github/workflows/linux_amd.yaml | 2 +- .../{linux_musl.yml => linux_musl_amd.yml} | 12 +--- .github/workflows/linux_musl_arm.yml | 56 +++++++++++++++++++ 3 files changed, 60 insertions(+), 10 deletions(-) rename .github/workflows/{linux_musl.yml => linux_musl_amd.yml} (82%) create mode 100644 .github/workflows/linux_musl_arm.yml diff --git a/.github/workflows/linux_amd.yaml b/.github/workflows/linux_amd.yaml index 0a2aab432..f766e4948 100644 --- a/.github/workflows/linux_amd.yaml +++ b/.github/workflows/linux_amd.yaml @@ -63,7 +63,7 @@ jobs: cargo install --locked cargo-zigbuild cargo clean cargo zigbuild --target x86_64-unknown-linux-gnu.2.17 -r -p kcl-lib - cp -f target/x86_64-unknown-linux-gnu/release/libkcl.so _build/dist/linux + cp -f target/x86_64-unknown-linux-gnu/release/libkcl.so _build/dist/linux/core make release - name: Read VERSION file diff --git a/.github/workflows/linux_musl.yml b/.github/workflows/linux_musl_amd.yml similarity index 82% rename from .github/workflows/linux_musl.yml rename to .github/workflows/linux_musl_amd.yml index 81fe001a5..a71ccc60c 100644 --- a/.github/workflows/linux_musl.yml +++ b/.github/workflows/linux_musl_amd.yml @@ -16,12 +16,6 @@ jobs: uses: actions/checkout@v3 with: submodules: "true" - - name: Set up Go - uses: actions/setup-go@v2 - with: - go-version: 1.24 - - # Prerequisite - name: Install Python3 (for Grammar test) shell: bash @@ -41,10 +35,10 @@ jobs: run: | pip3 install ziglang cargo install --locked cargo-zigbuild - rustup target add x86_64-unknown-linux-musl - cargo zigbuild --target x86_64-unknown-linux-musl -r -p kcl-lib + rustup target add aarch64-unknown-linux-musl + cargo zigbuild --target aarch64-unknown-linux-musl -r -p kcl-lib mkdir -p _build/dist/linux - cp -f target/x86_64-unknown-linux-musl/release/libkcl.a _build/dist/linux + cp -f target/aarch64-unknown-linux-musl/release/libkcl.a _build/dist/linux/core make release - name: Read VERSION file diff --git a/.github/workflows/linux_musl_arm.yml b/.github/workflows/linux_musl_arm.yml new file mode 100644 index 000000000..216cf1c42 --- /dev/null +++ b/.github/workflows/linux_musl_arm.yml @@ -0,0 +1,56 @@ +name: Build and Test on Linux MUSL AARCH64 +on: + pull_request: + branches: + - main + push: + branches: + - main +jobs: + build-and-test: + # Ref: https://github.com/actions/runner-images/tree/main/images/linux + name: build and test on Linux MUSL AARCH64 + runs-on: ubuntu-22.04-arm + steps: + - name: Check out code + uses: actions/checkout@v3 + with: + submodules: "true" + + - name: Install Python3 (for Grammar test) + shell: bash + run: | + sudo apt-get update + sudo apt-get install -y git wget curl make + sudo apt-get install python3 python3-pip -y + - name: Install rust nightly toolchain + uses: actions-rs/toolchain@v1 + with: + toolchain: 1.91 + override: true + components: clippy, rustfmt + + - name: KCL Lib MUSL Build and Release + shell: bash + run: | + pip3 install ziglang + cargo install --locked cargo-zigbuild + rustup target add x86_64-unknown-linux-musl + cargo zigbuild --target x86_64-unknown-linux-musl -r -p kcl-lib + mkdir -p _build/dist/linux + cp -f target/x86_64-unknown-linux-musl/release/libkcl.a _build/dist/linux/core + make release + + - name: Read VERSION file + run: | + VERSION=$(cargo pkgid -p kcl-api | cut -d'@' -f2) + echo "VERSION=v${VERSION}" >> $GITHUB_ENV + + - name: Rename artifact name with version + run: sudo mv -f _build/dist/linux/kcl-latest-linux-arm64.tar.gz _build/dist/linux/kcl-${{ env.VERSION }}-linux-musl-arm64.tar.gz + + - uses: actions/upload-artifact@v4 + with: + name: kcl-${{ env.VERSION }}-linux-musl-arm64 + if-no-files-found: error + path: _build/dist/linux/kcl-${{ env.VERSION }}-linux-musl-arm64.tar.gz