Skip to content

swap to asdf instead #49

swap to asdf instead

swap to asdf instead #49

Workflow file for this run

name: precompile
on:
push:
branches:
- 'precompile-woes'
permissions:
contents: write
jobs:
linux:
runs-on: ubuntu-20.04
env:
MIX_ENV: prod
strategy:
matrix:
job:
- {otp: "27", elixir: "1.17", nif: "2.17"}
- {otp: "26", elixir: "1.16", nif: "2.16"}
- {otp: "24", elixir: "1.13", nif: "2.15"}
name: Linux x86_64 - OTP ${{ matrix.job.otp }} - Elixir ${{ matrix.job.elixir }}
steps:
- name: Checkout
uses: actions/checkout@v4
- uses: erlef/setup-beam@v1
with:
otp-version: ${{ matrix.job.otp }}
elixir-version: ${{ matrix.job.elixir }}
# - name: Install system dependecies
# run: |
# sudo apt-get update
# sudo apt-get install -y build-essential automake autoconf 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
# wget "https://musl.cc/${musl_arch}-linux-musl-cross.tgz" -O "${musl_arch}-linux-musl-cross.tgz"
# tar -xf "${musl_arch}-linux-musl-cross.tgz"
# done
# - name: Create precompiled x86_64 library
# run: |
# export PATH="$(pwd)/x86_64-linux-musl-cross/bin:${PATH}"
# export ELIXIR_MAKE_CACHE_DIR=$(pwd)/cache
# mkdir -p "${ELIXIR_MAKE_CACHE_DIR}"
# mix deps.get
# mix elixir_make.precompile
# - name: Create precompiled aarch64 library
# run: |
# export PATH="$(pwd)/aarch64-linux-musl-cross/bin:${PATH}"
# export ELIXIR_MAKE_CACHE_DIR=$(pwd)/cache
# mkdir -p "${ELIXIR_MAKE_CACHE_DIR}"
# mix deps.get
# mix elixir_make.precompile
# - name: Create precompiled riscv64 library
# run: |
# export PATH="$(pwd)/riscv64-linux-musl-cross/bin:${PATH}"
# 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@v1
# if: startsWith(github.ref, 'refs/tags/')
# with:
# files: |
# cache/*.tar.gz
# macos:
# runs-on: ubuntu-20.04
# env:
# MIX_ENV: prod
# ELIXIR_VERSION: "1.16.0"
# strategy:
# matrix:
# job:
# - {otp: "25", elixir: "1.16"}
# precompile:
# runs-on: ${{ matrix.job.os }}
# env:
# MIX_ENV: "prod"
#
# name: Precompile for Elixir ${{ matrix.job.elixir }}, OTP ${{ matrix.job.otp }}, OS ${{ matrix.job.os }}
# strategy:
# fail-fast: false
# matrix:
# job:
# - { os: "ubuntu-20.04", otp: "25.0", elixir: "1.14", triplet: "" }
# - { os: "macos-11", otp: "25.0", elixir: "1.14.3", triplet: "x86_64-apple-darwin" }
# - { os: "windows-2019", otp: "25.0", elixir: "1.14", triplet: "" }
# steps:
# - uses: actions/checkout@v3
# - uses: erlef/setup-beam@v1
# if: matrix.job.os != 'macos-11'
# with:
# otp-version: ${{ matrix.job.otp }}
# elixir-version: ${{ matrix.job.elixir }}
# - name: Install erlang and elixir
# if: matrix.job.os == 'macos-11'
# run: |
# export ROOT_DIR=$(pwd)
#
# mkdir -p ./cache/otp
# curl -fSL https://github.com/cocoa-xu/otp-build/releases/download/v${{ matrix.job.otp }}/otp-${{ matrix.job.triplet}}.tar.gz -o ./cache/otp/otp-v${{ matrix.job.otp }}-${{ matrix.job.triplet}}.tar.gz
# cd ./cache/otp
# tar -xzf otp-v${{ matrix.job.otp }}-${{ matrix.job.triplet}}.tar.gz
# cd ${ROOT_DIR}
#
# export PATH=$(pwd)/cache/otp/usr/local/bin:$(pwd)/./cache/elixir/elixir-${{ matrix.job.elixir }}/bin:${PATH}
# export ERL_ROOTDIR=$(pwd)/cache/otp/usr/local/lib/erlang
#
# mkdir -p ./cache/elixir
# curl -fSL https://github.com/elixir-lang/elixir/archive/refs/tags/v${{ matrix.job.elixir }}.tar.gz -o ./cache/elixir/elixir-${{ matrix.job.elixir }}.tar.gz
# cd ./cache/elixir
# tar -xzf elixir-${{ matrix.job.elixir }}.tar.gz
# cd elixir-${{ matrix.job.elixir }}
# make compile
# make -j$(sysctl -n hw.ncpu) install
#
# mix local.hex --force
# mix local.rebar --force
#
# - uses: ilammy/msvc-dev-cmd@v1
# if: matrix.job.os == 'windows-2019'
# with:
# arch: x64
#
# - name: Install system dependencies
# if: matrix.job.os == 'ubuntu-20.04'
# run: |
# sudo apt-get update
# sudo apt-get install -y build-essential automake autoconf pkg-config bc m4 unzip zip wget \
# 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
# if: matrix.job.os == 'ubuntu-20.04'
# run: |
# for musl_arch in x86_64 aarch64 riscv64
# do
# wget "https://musl.cc/${musl_arch}-linux-musl-cross.tgz" -O "${musl_arch}-linux-musl-cross.tgz"
# tar -xf "${musl_arch}-linux-musl-cross.tgz"
# done
#
# - name: Create precompiled library
# shell: bash
# run: |
# if [ "${{ matrix.job.os }}" = "macos-11" ]; then
# export PATH=$(pwd)/cache/otp/usr/local/bin:$(pwd)/./cache/elixir/elixir-${{ matrix.job.elixir }}/bin:${PATH}
# export ERL_ROOTDIR=$(pwd)/cache/otp/usr/local/lib/erlang
# elif [ "${{ matrix.job.os }}" = "ubuntu-20.04" ]; then
# for musl_arch in x86_64 aarch64 riscv64
# do
# export PATH="$(pwd)/${musl_arch}-linux-musl-cross/bin:${PATH}"
# done
# fi
# export ELIXIR_MAKE_CACHE_DIR=$(pwd)/cache
# mkdir -p "${ELIXIR_MAKE_CACHE_DIR}"
# mix deps.get
# mix elixir_make.precompile