Skip to content

Commit be8b637

Browse files
authored
Clean up CI and unify coverage and docs build
1 parent b58cdd8 commit be8b637

File tree

1 file changed

+31
-18
lines changed

1 file changed

+31
-18
lines changed

.github/workflows/ci.yml

Lines changed: 31 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ on:
88
push:
99
paths-ignore:
1010
- "lib/**/*.md"
11+
1112
pull_request:
1213
paths-ignore:
1314
- "lib/**/*.md"
@@ -22,7 +23,7 @@ permissions:
2223

2324
jobs:
2425
test_linux:
25-
name: Ubuntu 24.04, Erlang/OTP ${{ matrix.otp_version }}${{ matrix.deterministic && ' (deterministic)' || '' }}${{ matrix.coverage && ' (coverage)' || '' }}
26+
name: Ubuntu 24.04, OTP ${{ matrix.otp_version }}${{ matrix.deterministic && ' (deterministic)' || '' }}${{ matrix.coverage && ' (coverage)' || '' }}
2627
runs-on: ubuntu-24.04
2728

2829
strategy:
@@ -33,10 +34,8 @@ jobs:
3334
deterministic: true
3435
- otp_version: "28.1"
3536
erlc_opts: "warnings_as_errors"
37+
docs: true
3638
coverage: true
37-
- otp_version: "28.1"
38-
otp_latest: true
39-
erlc_opts: "warnings_as_errors"
4039
- otp_version: "27.3"
4140
erlc_opts: "warnings_as_errors"
4241
- otp_version: "27.0"
@@ -54,35 +53,38 @@ jobs:
5453
ERLC_OPTS: ${{ matrix.erlc_opts || '' }}
5554
steps:
5655
- uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3 # v6.0.0
57-
with:
58-
fetch-depth: 50
56+
5957
- uses: erlef/setup-beam@e6d7c94229049569db56a7ad5a540c051a010af9 # v1.20.4
6058
with:
6159
otp-version: ${{ matrix.otp_version }}
60+
6261
- name: Set ERL_COMPILER_OPTIONS
6362
if: ${{ matrix.deterministic }}
6463
run: echo "ERL_COMPILER_OPTIONS=deterministic" >> $GITHUB_ENV
64+
6565
- name: Compile Elixir
6666
run: |
6767
make compile
6868
echo "$PWD/bin" >> $GITHUB_PATH
69+
6970
- name: Build info
7071
run: bin/elixir --version
72+
7173
- name: Check format
7274
run: make test_formatted && echo "All Elixir source code files are properly formatted."
75+
7376
- name: Erlang test suite
7477
run: make test_erlang
7578
continue-on-error: ${{ matrix.development }}
79+
7680
- name: Elixir test suite
7781
run: make test_elixir
7882
continue-on-error: ${{ matrix.development }}
7983
env:
8084
COVER: "${{ matrix.coverage }}"
81-
- name: "Calculate Coverage"
82-
run: make cover | tee "$GITHUB_STEP_SUMMARY"
83-
if: "${{ matrix.coverage }}"
85+
8486
- name: Build docs (ExDoc main)
85-
if: ${{ matrix.otp_latest }}
87+
if: ${{ matrix.docs }}
8688
run: |
8789
cd ..
8890
git clone https://github.com/elixir-lang/ex_doc.git --depth 1
@@ -91,19 +93,25 @@ jobs:
9193
cd ../elixir/
9294
git fetch --tags
9395
DOCS_OPTIONS="--warnings-as-errors" make docs
96+
97+
- name: "Calculate Coverage"
98+
if: ${{ matrix.coverage }}
99+
run: make cover | tee "$GITHUB_STEP_SUMMARY"
100+
101+
- name: "Upload Coverage Artifact"
102+
if: ${{ matrix.coverage }}
103+
uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5.0.0
104+
with:
105+
name: TestCoverage
106+
path: cover/*
107+
94108
- name: Check reproducible builds
95109
if: ${{ matrix.deterministic }}
96110
run: |
97111
rm -rf .git
98112
# Recompile System without .git
99113
cd lib/elixir && ../../bin/elixirc -o ebin lib/system.ex && cd -
100114
taskset 1 make check_reproducible
101-
- name: "Upload Coverage Artifact"
102-
if: "${{ matrix.coverage }}"
103-
uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5.0.0
104-
with:
105-
name: TestCoverage
106-
path: cover/*
107115
108116
test_windows:
109117
name: Windows Server 2022, Erlang/OTP ${{ matrix.otp_version }}
@@ -119,22 +127,27 @@ jobs:
119127
steps:
120128
- name: Configure Git
121129
run: git config --global core.autocrlf input
130+
122131
- uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3 # v6.0.0
123-
with:
124-
fetch-depth: 50
132+
125133
- uses: erlef/setup-beam@e6d7c94229049569db56a7ad5a540c051a010af9 # v1.20.4
126134
with:
127135
otp-version: ${{ matrix.otp_version }}
136+
128137
- name: Compile Elixir
129138
run: |
130139
Remove-Item -Recurse -Force '.git'
131140
make compile
141+
132142
- name: Build info
133143
run: bin/elixir --version
144+
134145
- name: Check format
135146
run: make test_formatted && echo "All Elixir source code files are properly formatted."
147+
136148
- name: Erlang test suite
137149
run: make test_erlang
150+
138151
- name: Elixir test suite
139152
run: |
140153
Remove-Item 'c:/Windows/System32/drivers/etc/hosts'

0 commit comments

Comments
 (0)