Skip to content

Commit d2afbc5

Browse files
(GH-1152, GH-1153) Add new build script and workflow
This change adds a reworked build script to the project and a GHA workflow that uses it. Currently this duplicates both the build script and the CI jobs. For now, this enables us to ensure continuity of existing behavior while we iteratively improve the new build script and CI configuration to speed up builds and improve maintainability. The new build script generally provides equivalent functionality with the existing legacy script to the best of my ability. In the process, this change also: - Defines a helper module for build-and-maintenance related functions. This made the build script itself somewhat easier to reason about, and the functions in the module can be used outside of the script. - Moves build data out of the script and into a separate datafile. For now, this puts build data at the root, instead of per-project. In the future, I would like to refactor things to retrieve build data from the individual projects instead. Finally, this change adds a benchmarking comparison script to enable us to programmatically compare the build scripts for local and CI workflows.
1 parent 2e5f1bb commit d2afbc5

File tree

5 files changed

+2786
-0
lines changed

5 files changed

+2786
-0
lines changed

.github/workflows/rust.new.yml

Lines changed: 58 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,58 @@
1+
name: RustNew
2+
3+
on:
4+
push:
5+
branches: [ "main", "release/*" ]
6+
pull_request:
7+
branches: [ "main", "release/*" ]
8+
paths-ignore:
9+
- "docs/**"
10+
- "*.md"
11+
- ".vscode/*.json"
12+
- ".github/ISSUE_TEMPLATE/**"
13+
14+
env:
15+
CARGO_TERM_COLOR: always
16+
17+
jobs:
18+
build-linux-new:
19+
runs-on: ubuntu-latest
20+
steps:
21+
- uses: actions/checkout@v5
22+
- name: Install prerequisites
23+
shell: pwsh
24+
run: ./build.new.ps1 -SkipBuild -Clippy -Verbose
25+
- name: Build
26+
shell: pwsh
27+
run: ./build.new.ps1 -Clippy -Verbose
28+
- name: Run tests
29+
shell: pwsh
30+
run: ./build.new.ps1 -Test -Verbose
31+
32+
build-windows-new:
33+
runs-on: windows-latest
34+
steps:
35+
- uses: actions/checkout@v5
36+
- name: Install prerequisites
37+
shell: pwsh
38+
run: ./build.new.ps1 -SkipBuild -Clippy -Verbose
39+
- name: Build
40+
shell: pwsh
41+
run: ./build.new.ps1 -Clippy -Verbose
42+
- name: Run tests
43+
shell: pwsh
44+
run: ./build.new.ps1 -Test -Verbose
45+
46+
build-macos-new:
47+
runs-on: macos-latest
48+
steps:
49+
- uses: actions/checkout@v5
50+
- name: Install prerequisites
51+
shell: pwsh
52+
run: ./build.new.ps1 -SkipBuild -Clippy -Verbose
53+
- name: Build
54+
shell: pwsh
55+
run: ./build.new.ps1 -Clippy -Verbose
56+
- name: Run tests
57+
shell: pwsh
58+
run: ./build.new.ps1 -Test -Verbose

0 commit comments

Comments
 (0)