From 615edab8e8b9145789f5fed917f2e718326e95e3 Mon Sep 17 00:00:00 2001 From: Moosieus Date: Fri, 29 Dec 2023 13:35:41 -0500 Subject: [PATCH] add release.yml --- .github/workflows/release.yml | 68 +++++++++++++++++++++++++++++++++++ lib/bzip2_decomp.ex | 2 +- 2 files changed, 69 insertions(+), 1 deletion(-) create mode 100644 .github/workflows/release.yml diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml new file mode 100644 index 0000000..1a719ce --- /dev/null +++ b/.github/workflows/release.yml @@ -0,0 +1,68 @@ +name: Build precompiled NIFs + +on: + push: + branches: + - main + tags: + - '*' + +jobs: + build_release: + name: NIF ${{ matrix.nif }} - ${{ matrix.job.target }} (${{ matrix.job.os }}) + runs-on: ${{ matrix.job.os }} + strategy: + fail-fast: false + matrix: + nif: ["2.16", "2.15"] + job: + - { target: arm-unknown-linux-gnueabihf , os: ubuntu-20.04 , use-cross: true } + - { target: aarch64-unknown-linux-gnu , os: ubuntu-20.04 , use-cross: true } + - { target: aarch64-unknown-linux-musl , os: ubuntu-20.04 , use-cross: true } + - { target: aarch64-apple-darwin , os: macos-11 } + - { target: riscv64gc-unknown-linux-gnu , os: ubuntu-20.04 , use-cross: true } + - { target: x86_64-apple-darwin , os: macos-11 } + - { target: x86_64-unknown-linux-gnu , os: ubuntu-20.04 } + - { target: x86_64-unknown-linux-musl , os: ubuntu-20.04 , use-cross: true } + - { target: x86_64-pc-windows-gnu , os: windows-2019 } + - { target: x86_64-pc-windows-msvc , os: windows-2019 } + + steps: + - name: Checkout source code + uses: actions/checkout@v3 + + - name: Extract project version + shell: bash + run: | + # Get the project version from mix.exs + echo "PROJECT_VERSION=$(sed -n 's/^ @version "\(.*\)"/\1/p' mix.exs | head -n1)" >> $GITHUB_ENV + + - name: Install Rust toolchain + uses: dtolnay/rust-toolchain@stable + with: + toolchain: stable + target: ${{ matrix.job.target }} + + - name: Build the project + id: build-crate + uses: philss/rustler-precompiled-action@v1.0.1 + with: + project-name: example + project-version: ${{ env.PROJECT_VERSION }} + target: ${{ matrix.job.target }} + nif-version: ${{ matrix.nif }} + use-cross: ${{ matrix.job.use-cross }} + project-dir: "native/example" + + - name: Artifact upload + uses: actions/upload-artifact@v3 + with: + name: ${{ steps.build-crate.outputs.file-name }} + path: ${{ steps.build-crate.outputs.file-path }} + + - name: Publish archives and packages + uses: softprops/action-gh-release@v1 + with: + files: | + ${{ steps.build-crate.outputs.file-path }} + if: startsWith(github.ref, 'refs/tags/') \ No newline at end of file diff --git a/lib/bzip2_decomp.ex b/lib/bzip2_decomp.ex index 91613b4..9942add 100644 --- a/lib/bzip2_decomp.ex +++ b/lib/bzip2_decomp.ex @@ -3,7 +3,7 @@ defmodule Bzip2 do use RustlerPrecompiled, otp_app: :bzip2_decomp, - base_url: "https://github.com/Moosieus/bzip2_decomp/releases/download#{version}", + base_url: "https://github.com/Moosieus/bzip2_decomp/releases/download/v#{version}", force_build: System.get_env("RUSTLER_BUILD") in ["1", "true"], version: version