1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
|
name: Test
on:
push:
paths-ignore:
- '**.md'
schedule:
# Weekly, at 00:30 UTC on Friday (somewhat randomly chosen).
- cron: '30 00 * * 5'
workflow_dispatch:
permissions: {}
jobs:
lint:
name: Linting
runs-on: ubuntu-slim
permissions:
security-events: write
steps:
- name: Checkout
uses: actions/checkout@v7
with:
persist-credentials: false
- name: Run zizmor
uses: zizmorcore/zizmor-action@v0.7.1
test:
strategy:
matrix:
platform:
- x86
- x64
os:
- ubuntu-22.04
- ubuntu-24.04
- ubuntu-26.04
- windows-2022
- windows-2025
runs-on: ${{ matrix.os }}
name: |
Test: ${{ matrix.os }} / ${{ matrix.platform }}
steps:
- name: Checkout
uses: actions/checkout@v7
with:
persist-credentials: false
- name: Clean up PATH
uses: egor-tensin/cleanup-path@v5
if: runner.os == 'Windows'
- name: Set up Clang
uses: $/
with:
platform: ${{ matrix.platform }}
cc: 1
- name: Build threads.exe
uses: $/.github/actions/build-threads
- name: Run threads.exe
uses: $/.github/actions/run-threads
- name: Check symlinks
uses: $/.github/actions/check-cc
- name: Check lld
uses: $/.github/actions/check-lld
test_versions:
needs: test
strategy:
# A weak attempt to please Ubuntu servers:
max-parallel: 4
matrix:
os:
- ubuntu-22.04
- ubuntu-24.04
- ubuntu-26.04
version: [11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23]
exclude:
- {os: ubuntu-24.04, version: 11}
- {os: ubuntu-24.04, version: 12}
- {os: ubuntu-24.04, version: 13}
- {os: ubuntu-26.04, version: 11}
- {os: ubuntu-26.04, version: 12}
- {os: ubuntu-26.04, version: 13}
- {os: ubuntu-26.04, version: 14}
- {os: ubuntu-26.04, version: 15}
- {os: ubuntu-26.04, version: 16}
runs-on: ${{ matrix.os }}
name: |
Version: ${{ matrix.os }} / ${{ matrix.version }}
steps:
- name: Checkout
uses: actions/checkout@v7
with:
persist-credentials: false
- id: setup
name: Set up Clang
uses: $/
with:
version: ${{ matrix.version }}
platform: ${{ matrix.platform }}
cc: 1
- name: Build threads.exe
uses: $/.github/actions/build-threads
with:
binary: ${{ steps.setup.outputs.clangxx }}
- name: Run threads.exe
uses: $/.github/actions/run-threads
- name: Check symlinks
uses: $/.github/actions/check-cc
with:
version: ${{ matrix.version }}
- name: Check lld
uses: $/.github/actions/check-lld
with:
version: ${{ matrix.version }}
release:
if: github.ref_type == 'tag'
name: Release
runs-on: ubuntu-latest
needs:
- test
- test_versions
permissions:
contents: write
steps:
- name: Checkout
uses: actions/checkout@v7
with:
persist-credentials: false
- name: Release
uses: softprops/action-gh-release@v3
|