88 push :
99 paths-ignore :
1010 - " lib/**/*.md"
11+
1112 pull_request :
1213 paths-ignore :
1314 - " lib/**/*.md"
@@ -22,7 +23,7 @@ permissions:
2223
2324jobs :
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 :
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