11name : ci
22on :
33 pull_request :
4+ paths-ignore :
5+ - " CHANGELOG.md"
6+ - " docs/**"
47 push :
58 branches :
69 - main
5962 cargo-tool : cross
6063 run-integration-tests : false # Cannot run aarch64 binaries on x86_64
6164 # macos>=14 runs exclusively on aarch64 and will thus fail to execute properly for x64
62- - os : macos-13 # intel
65+ - os : macos-15-intel # intel
6366 target : x86_64-apple-darwin
6467 binary : x86_64
6568 cargo-tool : cargo
@@ -70,17 +73,17 @@ jobs:
7073 binary : arm64
7174 cargo-tool : cargo
7275 run-integration-tests : true
73- - os : windows-latest
76+ - os : windows-2022
7477 target : x86_64-pc-windows-msvc
7578 binary : x86-64
7679 cargo-tool : cargo
7780 run-integration-tests : true
7881 steps :
7982 - name : Checkout repository
80- uses : actions/checkout@v4
83+ uses : actions/checkout@v5
8184
8285 - name : Install musl-tools incl. musl-gcc
83- uses : awalsh128/cache-apt-pkgs-action@v1.5.0
86+ uses : awalsh128/cache-apt-pkgs-action@v1
8487 with :
8588 # musl-tools provide `musl-gcc` which is required for `ring` which is required for `rustls` et al.
8689 packages : musl-tools
@@ -93,24 +96,17 @@ jobs:
9396 toolchain : ${{ matrix.toolchain }}
9497 target : ${{ matrix.target }}
9598
96- - name : Install Erlang (non-macos)
99+ - name : Install Erlang
97100 uses : erlef/setup-beam@v1
98101 with :
99- otp-version : " 26 .1"
100- elixir-version : " 1.16.1 "
102+ otp-version : " 28.0 .1"
103+ elixir-version : " 1.18 "
101104 rebar3-version : " 3"
102- if : ${{ runner.os != 'macOS' }} # setup-beam does not support macOS
103-
104- - name : Install Erlang (macos)
105- run : |
106- brew install erlang rebar3 elixir
107- mix local.hex --force
108- if : ${{ runner.os == 'macOS' }} # setup-beam does not support macOS
109105
110106 - name : Setup Node
111- uses : actions/setup-node@v4
107+ uses : actions/setup-node@v6
112108 with :
113- node-version : " 22 "
109+ node-version : " 20 "
114110
115111 - name : Setup Deno
116112 uses : denoland/setup-deno@v2
@@ -128,7 +124,7 @@ jobs:
128124 key : v1-${{ matrix.target }}
129125
130126 - name : Install Gleam
131- uses : clechasseur/rs-cargo@v3
127+ uses : clechasseur/rs-cargo@v4
132128 with :
133129 command : install
134130 args : " --path gleam-bin --target ${{ matrix.target }} --debug --locked --force"
@@ -153,7 +149,7 @@ jobs:
153149 if : ${{ matrix.run-integration-tests }}
154150
155151 - name : Run tests
156- uses : clechasseur/rs-cargo@v3
152+ uses : clechasseur/rs-cargo@v4
157153 with :
158154 command : test
159155 # We only want to run the `test-output` when running integration tests.
@@ -275,7 +271,7 @@ jobs:
275271
276272 # Test adding of deps
277273 gleam add exception # No specifier
278- gleam add gleam_http@3 # Version specifier
274+ gleam add gleam_http@4 # Version specifier
279275 gleam test
280276
281277 # Test documentation generation
@@ -315,17 +311,17 @@ jobs:
315311 timeout-minutes : 30
316312 steps :
317313 - name : Checkout repository
318- uses : actions/checkout@v4
314+ uses : actions/checkout@v5
319315
320316 - name : Install Rust toolchain
321317 uses : dtolnay/rust-toolchain@stable
322318 with :
323319 toolchain : stable
324320 target : wasm32-unknown-unknown
325321
326- - uses : actions/setup-node@v4
322+ - uses : actions/setup-node@v6
327323 with :
328- node-version : " 22 "
324+ node-version : " 20 "
329325
330326 - name : Install wasm-pack
331327 run : |
@@ -340,7 +336,7 @@ jobs:
340336 timeout-minutes : 10
341337 steps :
342338 - name : Checkout repository
343- uses : actions/checkout@v4
339+ uses : actions/checkout@v5
344340
345341 - name : Install Rust toolchain
346342 uses : dtolnay/rust-toolchain@stable
@@ -356,7 +352,7 @@ jobs:
356352 timeout-minutes : 10
357353 steps :
358354 - name : Checkout repository
359- uses : actions/checkout@v4
355+ uses : actions/checkout@v5
360356
361357 - name : Ensure no merge commits
362358 uses : NexusPHP/no-merge-commits@v2.2.1
@@ -385,7 +381,7 @@ jobs:
385381 timeout-minutes : 10
386382 steps :
387383 - name : Checkout repository
388- uses : actions/checkout@v4
384+ uses : actions/checkout@v5
389385
390386 - name : Install Rust toolchain
391387 uses : dtolnay/rust-toolchain@stable
@@ -404,7 +400,7 @@ jobs:
404400 - run : cargo build
405401
406402 - name : Upload artifact (Ubuntu)
407- uses : actions/upload-artifact@v4
403+ uses : actions/upload-artifact@v5
408404 with :
409405 name : gleam
410406 path : target/debug/gleam
@@ -416,7 +412,7 @@ jobs:
416412 timeout-minutes : 10
417413 steps :
418414 - name : Checkout repository
419- uses : actions/checkout@v4
415+ uses : actions/checkout@v5
420416
421417 - name : Install Deno
422418 uses : denoland/setup-deno@v2
@@ -434,7 +430,7 @@ jobs:
434430 rebar3-version : " 3"
435431
436432 - name : Download Gleam binary from previous job
437- uses : actions/download-artifact@v4
433+ uses : actions/download-artifact@v6
438434 with :
439435 name : gleam
440436 path : ./test
@@ -498,3 +494,11 @@ jobs:
498494 - name : test/unicode_path
499495 run : make
500496 working-directory : ./test/unicode_path ⭐
497+
498+ - name : test/assert
499+ run : make test-all
500+ working-directory : ./test/assert
501+
502+ - name : Test publishing with default main
503+ run : ./test.sh
504+ working-directory : ./test/publishing_default_main
0 commit comments