-
Notifications
You must be signed in to change notification settings - Fork 15
129 lines (126 loc) · 4.15 KB
/
Copy pathrelease.yml
File metadata and controls
129 lines (126 loc) · 4.15 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
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"
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