Skip to content

Commit e1d0fdc

Browse files
CI: support OTP 23 on mac (#21)
Summary: - downloading rebar3 from https://s3.amazonaws.com/rebar3/rebar3 - ugly `export PATH=...` in Mac actions - after a dozen attempts I were not able to work it with `$GITHUB_PATH` for MacOS workers - adding one more release with OTP 23 on mac - testing: https://github.com/ilya-klyuchnikov/eqwalizer/releases/tag/otp-23-mac Pull Request resolved: #21 Reviewed By: michalmuskala Differential Revision: D43233950 Pulled By: ilya-klyuchnikov fbshipit-source-id: 51586c3746259881a4e075323f9f6749f452ffa9
1 parent 65f8d0b commit e1d0fdc

File tree

2 files changed

+84
-13
lines changed

2 files changed

+84
-13
lines changed

.github/workflows/ci.yml

Lines changed: 16 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,12 @@ jobs:
3030
uses: erlef/setup-beam@v1
3131
with:
3232
otp-version: ${{matrix.otp}}
33-
rebar3-version: '3.20.0'
33+
install-rebar: false
34+
install-hex: false
35+
- name: Install rebar3
36+
run: "curl https://s3.amazonaws.com/rebar3/rebar3 -o rebar3 && chmod +x rebar3"
37+
- name: "add rebar3 to path"
38+
run: 'echo "$GITHUB_WORKSPACE/rebar3" >> $GITHUB_PATH'
3439
- name: Assemble eqwalizer.jar
3540
run: "cd eqwalizer; sbt assembly"
3641
- name: Assemble eqwalizer binary
@@ -54,7 +59,10 @@ jobs:
5459
needs:
5560
- linux-ci
5661
runs-on: macos-latest
57-
name: MacOS CI (OTP 25)
62+
name: MacOS CI (${{matrix.brew_erlang}})
63+
strategy:
64+
matrix:
65+
brew_erlang: ['erlang@25', 'erlang@24', 'erlang@23']
5866
steps:
5967
- name: Checkout
6068
uses: "actions/checkout@v2"
@@ -65,8 +73,10 @@ jobs:
6573
java: 'java11'
6674
- name: Install Native Image Plugin
6775
run: gu install native-image
68-
- name: Install OTP + rebar3
69-
run: brew install erlang rebar3
76+
- name: Install Erlang
77+
run: brew install ${{matrix.brew_erlang}}
78+
- name: Install rebar3
79+
run: "mkdir rebar3 && curl https://s3.amazonaws.com/rebar3/rebar3 -o rebar3/rebar3 && chmod +x rebar3/rebar3"
7080
- name: Set up rust toolchain
7181
uses: actions-rs/toolchain@v1
7282
with:
@@ -79,9 +89,9 @@ jobs:
7989
- name: Assemble eqwalizer binary
8090
run: "cd eqwalizer && native-image -H:IncludeResources=application.conf --no-server --no-fallback -jar target/scala-2.13/eqwalizer.jar eqwalizer"
8191
- name: Test elp
82-
run: "export ELP_EQWALIZER_PATH=$GITHUB_WORKSPACE/eqwalizer/eqwalizer && cd mini-elp && cargo test --workspace"
92+
run: "export PATH=$GITHUB_WORKSPACE/rebar3:/usr/local/opt/${{matrix.brew_erlang}}/bin:$PATH ELP_EQWALIZER_PATH=$GITHUB_WORKSPACE/eqwalizer/eqwalizer && cd mini-elp && cargo test --workspace"
8393
- name: Assemble elp
84-
run: "export ELP_EQWALIZER_PATH=$GITHUB_WORKSPACE/eqwalizer/eqwalizer && cd mini-elp && cargo build --release"
94+
run: "export PATH=$GITHUB_WORKSPACE/rebar3:/usr/local/opt/${{matrix.brew_erlang}}/bin:$PATH ELP_EQWALIZER_PATH=$GITHUB_WORKSPACE/eqwalizer/eqwalizer && cd mini-elp && cargo build --release"
8595
name: eqWAlizer CI
8696
on:
8797
push: {}

.github/workflows/release.yml

Lines changed: 68 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,12 @@ jobs:
2525
uses: erlef/setup-beam@v1
2626
with:
2727
otp-version: '25.2'
28-
rebar3-version: '3.20.0'
28+
install-rebar: false
29+
install-hex: false
30+
- name: Install rebar3
31+
run: "curl https://s3.amazonaws.com/rebar3/rebar3 -o rebar3 && chmod +x rebar3"
32+
- name: "add rebar3 to path"
33+
run: 'echo "$GITHUB_WORKSPACE/rebar3" >> $GITHUB_PATH'
2934
- name: Assemble eqwalizer.jar
3035
run: "cd eqwalizer; sbt assembly"
3136
- name: Assemble eqwalizer binary
@@ -90,7 +95,12 @@ jobs:
9095
uses: erlef/setup-beam@v1
9196
with:
9297
otp-version: '23.3'
93-
rebar3-version: '3.20.0'
98+
install-rebar: false
99+
install-hex: false
100+
- name: Install rebar3
101+
run: "curl https://s3.amazonaws.com/rebar3/rebar3 -o rebar3 && chmod +x rebar3"
102+
- name: "add rebar3 to path"
103+
run: 'echo "$GITHUB_WORKSPACE/rebar3" >> $GITHUB_PATH'
94104
- name: Download eqwalizer.jar
95105
uses: "actions/download-artifact@v2"
96106
with:
@@ -121,7 +131,7 @@ jobs:
121131
asset_name: elp-linux-otp-23.tar.gz
122132
asset_path: elp-linux-otp-23.tar.gz
123133
upload_url: "${{ steps.get_release_url.outputs.upload_url }}"
124-
macos-release:
134+
macos-release-otp-25:
125135
needs:
126136
- linux-release-otp-25
127137
runs-on: macos-latest
@@ -135,8 +145,10 @@ jobs:
135145
java: 'java11'
136146
- name: Install Native Image Plugin
137147
run: gu install native-image
138-
- name: Install erlang + rebar3
139-
run: brew install erlang rebar3
148+
- name: Install erlang
149+
run: brew install erlang@25
150+
- name: Install rebar3
151+
run: "mkdir rebar3 && curl https://s3.amazonaws.com/rebar3/rebar3 -o rebar3/rebar3 && chmod +x rebar3/rebar3"
140152
- name: Set up rust toolchain
141153
uses: actions-rs/toolchain@v1
142154
with:
@@ -149,9 +161,9 @@ jobs:
149161
- name: Assemble eqwalizer binary
150162
run: "cd eqwalizer && native-image -H:IncludeResources=application.conf --no-server --no-fallback -jar target/scala-2.13/eqwalizer.jar eqwalizer"
151163
- name: Test elp
152-
run: "export ELP_EQWALIZER_PATH=$GITHUB_WORKSPACE/eqwalizer/eqwalizer && cd mini-elp && cargo test --workspace"
164+
run: "export PATH=$GITHUB_WORKSPACE/rebar3:/usr/local/opt/erlang@25/bin:$PATH ELP_EQWALIZER_PATH=$GITHUB_WORKSPACE/eqwalizer/eqwalizer && cd mini-elp && cargo test --workspace"
153165
- name: Assemble elp
154-
run: "export ELP_EQWALIZER_PATH=$GITHUB_WORKSPACE/eqwalizer/eqwalizer && cd mini-elp && cargo build --release"
166+
run: "export PATH=$GITHUB_WORKSPACE/rebar3:/usr/local/opt/erlang@25/bin:$PATH ELP_EQWALIZER_PATH=$GITHUB_WORKSPACE/eqwalizer/eqwalizer && cd mini-elp && cargo build --release"
155167
- name: Make elp-macos.tar.gz
156168
run: 'tar -zcvf elp-macos.tar.gz -C mini-elp/target/release/ elp'
157169
- env:
@@ -168,6 +180,55 @@ jobs:
168180
asset_name: elp-macos.tar.gz
169181
asset_path: elp-macos.tar.gz
170182
upload_url: "${{ steps.get_release_url.outputs.upload_url }}"
183+
macos-release-otp-23:
184+
needs:
185+
- linux-release-otp-25
186+
runs-on: macos-latest
187+
steps:
188+
- name: Checkout
189+
uses: "actions/checkout@v2"
190+
- name: Set up GraalVM
191+
uses: "DeLaGuardo/[email protected]"
192+
with:
193+
graalvm: '22.1.0'
194+
java: 'java11'
195+
- name: Install Native Image Plugin
196+
run: gu install native-image
197+
- name: Install erlang
198+
run: brew install erlang@23
199+
- name: Install rebar3
200+
run: "mkdir rebar3 && curl https://s3.amazonaws.com/rebar3/rebar3 -o rebar3/rebar3 && chmod +x rebar3/rebar3"
201+
- name: Set up rust toolchain
202+
uses: actions-rs/toolchain@v1
203+
with:
204+
toolchain: stable
205+
- name: Download eqwalizer.jar
206+
uses: "actions/download-artifact@v2"
207+
with:
208+
name: eqwalizer.jar
209+
path: eqwalizer/target/scala-2.13
210+
- name: Assemble eqwalizer binary
211+
run: "cd eqwalizer && native-image -H:IncludeResources=application.conf --no-server --no-fallback -jar target/scala-2.13/eqwalizer.jar eqwalizer"
212+
- name: Test elp
213+
run: "export PATH=$GITHUB_WORKSPACE/rebar3:/usr/local/opt/erlang@23/bin:$PATH ELP_EQWALIZER_PATH=$GITHUB_WORKSPACE/eqwalizer/eqwalizer && cd mini-elp && cargo test --workspace"
214+
- name: Assemble elp
215+
run: "export PATH=$GITHUB_WORKSPACE/rebar3:/usr/local/opt/erlang@23/bin:$PATH ELP_EQWALIZER_PATH=$GITHUB_WORKSPACE/eqwalizer/eqwalizer && cd mini-elp && cargo build --release"
216+
- name: Make elp-macos-otp-23.tar.gz
217+
run: 'tar -zcvf elp-macos-otp-23.tar.gz -C mini-elp/target/release/ elp'
218+
- env:
219+
GITHUB_TOKEN: "${{ secrets.GITHUB_TOKEN }}"
220+
id: get_release_url
221+
name: Get release url
222+
uses: "bruceadams/[email protected]"
223+
- env:
224+
GITHUB_TOKEN: "${{ secrets.GITHUB_TOKEN }}"
225+
name: Upload release elp-macos-otp-23.tar.gz
226+
uses: "actions/[email protected]"
227+
with:
228+
asset_content_type: application/octet-stream
229+
asset_name: elp-macos-otp-23.tar.gz
230+
asset_path: elp-macos-otp-23.tar.gz
231+
upload_url: "${{ steps.get_release_url.outputs.upload_url }}"
171232
name: eqWAlizer release
172233
on:
173234
release:

0 commit comments

Comments
 (0)