From 5f78a28d5e86ee819d24e73cb7a8d4194876daa7 Mon Sep 17 00:00:00 2001 From: ideadroit <52432866+ideadroit@users.noreply.github.com> Date: Sat, 23 Mar 2024 11:40:02 +0800 Subject: [PATCH] Create build.yml --- .github/workflows/build.yml | 73 +++++++++++++++++++++++++++++++++++++ 1 file changed, 73 insertions(+) create mode 100644 .github/workflows/build.yml diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml new file mode 100644 index 0000000..bb06c7a --- /dev/null +++ b/.github/workflows/build.yml @@ -0,0 +1,73 @@ +name: build +on: + workflow_dispatch: {} +jobs: + build: + name: build + runs-on: ${{ matrix.os }} + strategy: + matrix: + build: [linux, windows] + include: + - build: linux + os: ubuntu-latest + rust: nightly + target: x86_64-unknown-linux-musl + archive-name: NodeInject-linux.tar.gz + - build: windows + os: windows-2019 + rust: nightly-x86_64-msvc + target: x86_64-pc-windows-msvc + archive-name: NodeInject-windows.7z + fail-fast: false + + steps: + - name: Checkout NodeInject + uses: actions/checkout@v2 + with: + repository: DiamondHunters/NodeInject + - name: Checkout repository + uses: actions/checkout@v2 + with: + path: './js' + - name: Install Rust + uses: actions-rs/toolchain@v1 + with: + toolchain: ${{ matrix.rust }} + profile: minimal + override: true + target: ${{ matrix.target }} + + - name: Build binary + shell: bash + run: | + cp -f ./js/hook.js ./src/hooklog.js + cargo build --verbose --release --target ${{ matrix.target }} + cd ./js/license-gen + cargo build --verbose --release --target ${{ matrix.target }} + cd ../.. + env: + RUST_BACKTRACE: 1 + + - name: Build archive + shell: bash + run: | + mkdir archive + cp LICENSE README.md archive/ + ls -lR + if [ "${{ matrix.build }}" = "windows" ]; then + cp "./target/${{ matrix.target }}/release/node_inject.exe" ./archive/ + cp "./js/license-gen/target/${{ matrix.target }}/release/license-gen.exe" ./archive/ + cd archive + 7z a "${{ matrix.archive-name }}" LICENSE README.md node_inject.exe license-gen.exe + else + cp "./target/${{ matrix.target }}/release/node_inject" ./archive/ + cp "./js/license-gen/target/${{ matrix.target }}/release/license-gen" ./archive/ + cd archive + tar -czf "${{ matrix.archive-name }}" LICENSE README.md node_inject license-gen + fi + - name: Upload archive + uses: actions/upload-artifact@v1 + with: + name: ${{ matrix.archive-name }} + path: archive/${{ matrix.archive-name }}