Up #21
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: Release | |
| on: | |
| push: | |
| branches: | |
| - jk-musl | |
| tags: | |
| - "v*.*.*" | |
| permissions: | |
| contents: write | |
| jobs: | |
| linux: | |
| runs-on: ubuntu-22.04 | |
| container: ubuntu:20.04 | |
| env: | |
| ImageOS: ubuntu20 | |
| LANG: en_US.UTF-8 | |
| LANGUAGE: en_US:en | |
| LC_ALL: en_US.UTF-8 | |
| DEBIAN_FRONTEND: noninteractive | |
| MIX_ENV: prod | |
| ELIXIR_VERSION: "1.15.3" | |
| strategy: | |
| matrix: | |
| otp_version: ["25.3"] | |
| name: Linux x86_64 (${{ matrix.otp_version }}) | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Install system dependencies | |
| run: | | |
| apt-get update | |
| apt-get install -y curl wget git cmake \ | |
| build-essential automake autoconf cmake pkg-config bc m4 unzip zip \ | |
| gcc g++ \ | |
| gcc-i686-linux-gnu g++-i686-linux-gnu \ | |
| gcc-aarch64-linux-gnu g++-aarch64-linux-gnu \ | |
| gcc-arm-linux-gnueabihf g++-arm-linux-gnueabihf \ | |
| gcc-riscv64-linux-gnu g++-riscv64-linux-gnu \ | |
| gcc-powerpc64le-linux-gnu g++-powerpc64le-linux-gnu \ | |
| gcc-s390x-linux-gnu g++-s390x-linux-gnu | |
| - name: Get musl cross-compilers | |
| run: | | |
| for musl_arch in x86_64 aarch64 riscv64; do | |
| # We use a musl.cc mirror, see https://github.com/orgs/community/discussions/27906. | |
| musl_cc_url="https://github.com/jonatanklosko/musl_cc_mirror/releases/download/20250915-100603" | |
| wget "${musl_cc_url}/${musl_arch}-linux-musl-cross.tgz" -O "${musl_arch}-linux-musl-cross.tgz" --no-verbose | |
| tar -xf "${musl_arch}-linux-musl-cross.tgz" | |
| echo "$(pwd)/${musl_arch}-linux-musl-cross/bin" >> $GITHUB_PATH | |
| done | |
| - uses: erlef/setup-beam@v1 | |
| with: | |
| otp-version: ${{ matrix.otp_version }} | |
| elixir-version: ${{ env.ELIXIR_VERSION }} | |
| - name: Precompile | |
| run: | | |
| export ELIXIR_MAKE_CACHE_DIR=$(pwd)/cache | |
| mkdir -p "${ELIXIR_MAKE_CACHE_DIR}" | |
| mix deps.get | |
| mix elixir_make.precompile | |
| # - uses: softprops/action-gh-release@v2 | |
| # if: startsWith(github.ref, 'refs/tags/') | |
| # with: | |
| # draft: true | |
| # files: | | |
| # cache/*.tar.gz | |
| # cache/*.sha256 | |
| # macos: | |
| # runs-on: macos-13 | |
| # env: | |
| # MIX_ENV: prod | |
| # ELIXIR_VERSION: "1.15.3" | |
| # strategy: | |
| # matrix: | |
| # otp_version: ["25.3"] | |
| # name: macOS x86_64 (${{ matrix.otp_version }}) | |
| # steps: | |
| # - uses: actions/checkout@v4 | |
| # - run: | | |
| # curl -fsSO https://elixir-lang.org/install.sh | |
| # sh install.sh elixir@${{ env.ELIXIR_VERSION }} otp@${{ matrix.otp_version }} | |
| # otp_bin=($HOME/.elixir-install/installs/otp/*/bin) | |
| # elixir_bin=($HOME/.elixir-install/installs/elixir/*/bin) | |
| # echo "$otp_bin" >> "$GITHUB_PATH" | |
| # echo "$elixir_bin" >> "$GITHUB_PATH" | |
| # - name: Precompile | |
| # run: | | |
| # export ELIXIR_MAKE_CACHE_DIR=$(pwd)/cache | |
| # mkdir -p "${ELIXIR_MAKE_CACHE_DIR}" | |
| # mix deps.get | |
| # mix elixir_make.precompile | |
| # - uses: softprops/action-gh-release@v2 | |
| # if: startsWith(github.ref, 'refs/tags/') | |
| # with: | |
| # draft: true | |
| # files: | | |
| # cache/*.tar.gz | |
| # cache/*.sha256 | |
| # windows: | |
| # runs-on: windows-2022 | |
| # env: | |
| # MIX_ENV: prod | |
| # ELIXIR_VERSION: "1.15.3" | |
| # strategy: | |
| # matrix: | |
| # otp_version: ["25.3"] | |
| # name: Windows x86_64 (${{ matrix.otp_version }}) | |
| # steps: | |
| # - uses: actions/checkout@v4 | |
| # - uses: erlef/setup-beam@v1 | |
| # with: | |
| # otp-version: ${{ matrix.otp_version }} | |
| # elixir-version: ${{ env.ELIXIR_VERSION }} | |
| # - uses: ilammy/msvc-dev-cmd@v1 | |
| # - name: Precompile | |
| # shell: bash | |
| # run: | | |
| # export ELIXIR_MAKE_CACHE_DIR=$(pwd)/cache | |
| # mkdir -p "${ELIXIR_MAKE_CACHE_DIR}" | |
| # mix deps.get | |
| # mix elixir_make.precompile | |
| # - uses: softprops/action-gh-release@v2 | |
| # if: startsWith(github.ref, 'refs/tags/') | |
| # with: | |
| # draft: true | |
| # files: | | |
| # cache/*.tar.gz | |
| # cache/*.sha256 |