From a890c6f418a6e979fad7fea589659301b828d7b2 Mon Sep 17 00:00:00 2001 From: syui Date: Mon, 2 Mar 2026 15:56:58 +0900 Subject: [PATCH] add gh-actions --- .gitea/workflows/release.yml | 47 +++++++++++++++++++++++++ .github/workflows/release.yml | 64 +++++++++++++++++++++++++++++++++++ 2 files changed, 111 insertions(+) create mode 100644 .gitea/workflows/release.yml create mode 100644 .github/workflows/release.yml diff --git a/.gitea/workflows/release.yml b/.gitea/workflows/release.yml new file mode 100644 index 0000000..50673d7 --- /dev/null +++ b/.gitea/workflows/release.yml @@ -0,0 +1,47 @@ +name: Release + +on: + push: + tags: + - 'v*' + +jobs: + build: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + + - name: Install Rust + run: | + curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y + echo "$HOME/.cargo/bin" >> "$GITHUB_PATH" + + - name: Add targets + run: | + rustup target add x86_64-unknown-linux-gnu + rustup target add aarch64-unknown-linux-gnu + + - name: Install cross-compilation tools + run: | + sudo apt-get update + sudo apt-get install -y gcc-aarch64-linux-gnu + + - name: Build x86_64 + run: cargo build --release --target x86_64-unknown-linux-gnu + + - name: Build aarch64 + run: | + export CARGO_TARGET_AARCH64_UNKNOWN_LINUX_GNU_LINKER=aarch64-linux-gnu-gcc + cargo build --release --target aarch64-unknown-linux-gnu + + - name: Package + run: | + cd target/x86_64-unknown-linux-gnu/release + tar czf ../../../aigpt-x86_64-unknown-linux-gnu.tar.gz aigpt + cd ../../../target/aarch64-unknown-linux-gnu/release + tar czf ../../../aigpt-aarch64-unknown-linux-gnu.tar.gz aigpt + + - name: Create Release + uses: softprops/action-gh-release@v2 + with: + files: aigpt-*.tar.gz diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml new file mode 100644 index 0000000..2c670cd --- /dev/null +++ b/.github/workflows/release.yml @@ -0,0 +1,64 @@ +name: Release + +on: + push: + tags: + - 'v*' + +permissions: + contents: write + +jobs: + build: + strategy: + matrix: + include: + - target: x86_64-unknown-linux-gnu + os: ubuntu-latest + - target: aarch64-unknown-linux-gnu + os: ubuntu-latest + - target: x86_64-apple-darwin + os: macos-latest + - target: aarch64-apple-darwin + os: macos-latest + runs-on: ${{ matrix.os }} + steps: + - uses: actions/checkout@v4 + - uses: dtolnay/rust-toolchain@stable + with: + targets: ${{ matrix.target }} + + - name: Install cross-compilation tools + if: matrix.target == 'aarch64-unknown-linux-gnu' + run: | + sudo apt-get update + sudo apt-get install -y gcc-aarch64-linux-gnu + echo 'CARGO_TARGET_AARCH64_UNKNOWN_LINUX_GNU_LINKER=aarch64-linux-gnu-gcc' >> "$GITHUB_ENV" + + - name: Build + run: cargo build --release --target ${{ matrix.target }} + + - name: Package + run: | + cd target/${{ matrix.target }}/release + tar czf ../../../aigpt-${{ matrix.target }}.tar.gz aigpt + cd ../../.. + + - uses: actions/upload-artifact@v4 + with: + name: aigpt-${{ matrix.target }} + path: aigpt-${{ matrix.target }}.tar.gz + + release: + needs: build + runs-on: ubuntu-latest + steps: + - uses: actions/download-artifact@v4 + with: + merge-multiple: true + + - name: Create Release + uses: softprops/action-gh-release@v2 + with: + generate_release_notes: true + files: aigpt-*.tar.gz