Skip to content

Commit 3c1e657

Browse files
committed
Update CI/CD pipeline actions
(Re?)-add dependabot and use more recent versions of actions, including addition of UV for formatting (pre-commit). We also extend the test set of operating systems so that we can ensure historical support for older OSes.
1 parent 8baf886 commit 3c1e657

5 files changed

Lines changed: 71 additions & 29 deletions

File tree

.JuliaFormatter.toml

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
indent = 4
22
margin = 92
33
always_for_in = true
4-
for_in_replacement = "in"
54
whitespace_typedefs = true
65
whitespace_ops_in_indices = true
76
remove_extra_newlines = true

.github/dependabot.yml

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
# https://docs.github.com/github/administering-a-repository/configuration-options-for-dependency-updates
2+
version: 2
3+
updates:
4+
- package-ecosystem: "github-actions"
5+
directory: "/" # Location of package manifests
6+
schedule:
7+
interval: "weekly"

.github/workflows/CI.yml

Lines changed: 47 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -24,37 +24,57 @@ jobs:
2424
- "1.6" # Recent LTS
2525
- "nightly" # Latest Release
2626
os:
27-
- ubuntu-latest
28-
- macOS-latest
29-
- windows-latest
30-
# - freebsd-latest # CirrusCI.jl is currently (Sept., 2022) required to test with FreeBSB
27+
# Historical releases
28+
# - github.com/actions/runner-images#available-images)
29+
# - docs.github.com/en/actions/using-github-hosted-runners/using-github-hosted-runners/about-github-hosted-runners#standard-github-hosted-runners-for-public-repositories
30+
31+
## Ubuntu
32+
# releases.ubuntu.com
33+
- ubuntu-22.04 # LTS version at time of writing (June, 2025)
34+
- ubuntu-24.04 # LTS version at time of writing (June, 2025)
35+
# - ubuntu-24.04-arm # ARM
36+
- ubuntu-latest # Latest build available via GitHub runners
37+
38+
## macOS
39+
# wikipedia.org/wiki/MacOS_version_history#Releases
40+
- macOS-13 # Supported at time of writing (June, 2025)
41+
# - macOS-13-xlarge # ARM
42+
- macOS-14 # Supported at time of writing (June, 2025)
43+
# - macOS-14-xlarge # ARM
44+
- macOS-15 # Latest version at time of writing (June, 2025)
45+
# - macOS-15-xlarge # ARM
46+
- macOS-latest # Latest build available via GitHub runners
47+
48+
## Windows
49+
- windows-2019 # Windows Server
50+
- windows-2022 # Windows Server
51+
- windows-2025 # Windows Server
52+
# - windows-11-arm # ARM
53+
- windows-latest # Latest build available via GitHub runners
54+
55+
## FreeBSD
56+
# - freebsd-latest # CirrusCI.jl is currently (Sept., 2022) required to test with FreeBSB; see .cirrus.yml
3157
arch:
3258
- x64
3359
- x86 # 32-bit; i686
3460
exclude:
3561
# 32-bit Julia binaries are not available on macOS
62+
- os: macOS-13
63+
arch: x86
64+
- os: macOS-14
65+
arch: x86
66+
- os: macOS-15
67+
arch: x86
3668
- os: macOS-latest
3769
arch: x86
3870
steps:
39-
- uses: actions/checkout@v2
40-
- uses: julia-actions/setup-julia@v1
71+
- uses: actions/checkout@v4
72+
- uses: julia-actions/setup-julia@v2
4173
with:
4274
version: ${{ matrix.version }}
4375
arch: ${{ matrix.arch }}
44-
- uses: actions/cache@v1
45-
env:
46-
cache-name: cache-artifacts
47-
with:
48-
path: ~/.julia/artifacts
49-
key: ${{ runner.os }}-test-${{ env.cache-name }}-${{ hashFiles('**/Project.toml') }}
50-
restore-keys: |
51-
${{ runner.os }}-test-${{ env.cache-name }}-
52-
${{ runner.os }}-test-
53-
${{ runner.os }}-
76+
- uses: julia-actions/cache@v2
5477
- uses: julia-actions/julia-buildpkg@latest
55-
- run: |
56-
git config --global user.name Tester
57-
git config --global user.email te@st.er
5878
- uses: julia-actions/julia-runtest@latest
5979

6080
docs:
@@ -63,7 +83,7 @@ jobs:
6383
steps:
6484
- uses: actions/checkout@v4
6585
- uses: julia-actions/setup-julia@latest
66-
- uses: extractions/setup-just@v1 # or taiki-e/install-action@just
86+
- uses: extractions/setup-just@v3 # or taiki-e/install-action@just
6787
- run: |
6888
just docs
6989
env:
@@ -75,20 +95,20 @@ jobs:
7595
steps:
7696
- uses: actions/checkout@v4
7797
- uses: julia-actions/setup-julia@latest
78-
- uses: extractions/setup-just@v1 # or taiki-e/install-action@just
98+
- uses: extractions/setup-just@v3 # or taiki-e/install-action@just
99+
- uses: astral-sh/setup-uv@v6
100+
- run: uv python install
79101

80102
# Adapted from:
81103
# github.com/FluxML/Flux.jl/blob/7be1ca7a/.github/workflows/JuliaFormatter.yml
82104
- uses: dorny/paths-filter@v3
83105
id: filter
84106
with:
85107
filters: |
86-
julia_file_change:
87-
- added|modified: '**/*.jl'
88-
- name: Apply JuliaFormatter
89-
run: |
90-
just fmt
108+
file_change:
109+
- added|modified: '**/*'
110+
- run: just fmt
91111
- name: Check formatting diff
92-
if: steps.filter.outputs.julia_file_change == 'true'
112+
if: steps.filter.outputs.file_change == 'true'
93113
run: |
94114
git diff --color=always --exit-code

.github/workflows/TagBot.yml

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,22 @@ on:
44
types:
55
- created
66
workflow_dispatch:
7+
inputs:
8+
lookback:
9+
default: "3"
10+
permissions:
11+
actions: read
12+
checks: read
13+
contents: write
14+
deployments: read
15+
issues: read
16+
discussions: read
17+
packages: read
18+
pages: read
19+
pull-requests: read
20+
repository-projects: read
21+
security-events: read
22+
statuses: read
723
jobs:
824
TagBot:
925
if: github.event_name == 'workflow_dispatch' || github.actor == 'JuliaTagBot'

justfile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@ fmt: install-formatter
4949
# Install JuliaFormatter
5050
[private]
5151
install-formatter:
52-
julia --project=@JuliaFormatter -e 'import Pkg; Pkg.add("JuliaFormatter")'
52+
julia --project=@JuliaFormatter -e 'import Pkg; Pkg.add(name="JuliaFormatter", version="1.0.62")'
5353

5454
# Instantiate main project
5555
instantiate:

0 commit comments

Comments
 (0)