Skip to content

Commit cbae165

Browse files
committed
Merge branch 'gh-57/main/add-copy-function' of https://github.com/Gijsreyn/operation-methods into gh-57/main/add-copy-function
2 parents 1c45a47 + cc08525 commit cbae165

File tree

145 files changed

+10823
-1602
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

145 files changed

+10823
-1602
lines changed

.github/workflows/rust.new.yml

Lines changed: 0 additions & 146 deletions
This file was deleted.

.github/workflows/rust.yml

Lines changed: 147 additions & 47 deletions
Original file line numberDiff line numberDiff line change
@@ -14,58 +14,158 @@ on:
1414
env:
1515
CARGO_TERM_COLOR: always
1616

17-
jobs:
18-
# build-linux:
19-
20-
# runs-on: ubuntu-latest
21-
22-
# steps:
23-
# - uses: actions/checkout@v3
24-
# - name: Build
25-
# shell: pwsh
26-
# run: ./build.ps1 -clippy
27-
# - name: Run tests
28-
# shell: pwsh
29-
# run: ./build.ps1 -test
30-
31-
build-linux:
17+
defaults:
18+
run:
19+
shell: pwsh
3220

21+
jobs:
22+
docs:
23+
strategy:
24+
matrix:
25+
platform: [ubuntu-latest, macos-latest, windows-latest]
26+
runs-on: ${{matrix.platform}}
27+
steps:
28+
- uses: actions/checkout@v5
29+
- name: Install prerequisites
30+
run: ./build.new.ps1 -SkipBuild -Clippy -Verbose
31+
- name: Generate documentation
32+
run: ./build.new.ps1 -RustDocs -Verbose
33+
- name: Test documentation
34+
run: |-
35+
$testParams = @{
36+
SkipBuild = $true
37+
RustDocs = $true
38+
Test = $true
39+
ExcludeRustTests = $true
40+
ExcludePesterTests = $true
41+
Verbose = $true
42+
}
43+
./build.new.ps1 @testParams
44+
linux-build:
3345
runs-on: ubuntu-latest
34-
3546
steps:
36-
- uses: actions/checkout@v3
37-
- run: rustup target add x86_64-unknown-linux-musl
38-
- name: Install musl build tools
39-
run: sudo apt update && sudo apt install musl-tools -y
40-
- name: Build
41-
shell: pwsh
42-
run: ./build.ps1 -clippy -target x86_64-unknown-linux-musl
43-
- name: Run tests
44-
shell: pwsh
45-
run: ./build.ps1 -test -target x86_64-unknown-linux-musl
46-
47-
build-windows:
48-
49-
runs-on: windows-latest
50-
47+
- uses: actions/checkout@v5
48+
- name: Install prerequisites
49+
run: ./build.new.ps1 -SkipBuild -Clippy -Verbose
50+
- name: Build
51+
run: ./build.new.ps1 -Clippy -Verbose
52+
- name: Run rust tests
53+
run: ./build.new.ps1 -SkipBuild -Test -ExcludePesterTests -Verbose
54+
- name: Prepare build artifact
55+
run: tar -cvf bin.tar bin/
56+
- name: Upload build artifact
57+
uses: actions/upload-artifact@v4
58+
with:
59+
name: linux-bin
60+
path: bin.tar
61+
linux-pester:
62+
needs: linux-build
63+
strategy:
64+
fail-fast: false
65+
matrix:
66+
group: [dsc, adapters, extensions, resources]
67+
runs-on: ubuntu-latest
5168
steps:
52-
- uses: actions/checkout@v3
53-
- name: Build
54-
shell: pwsh
55-
run: ./build.ps1 -clippy
56-
- name: Run tests
57-
shell: pwsh
58-
run: ./build.ps1 -test
59-
60-
build-macos:
69+
- uses: actions/checkout@v5
70+
- name: Download build artifact
71+
uses: actions/download-artifact@v4
72+
with:
73+
name: linux-bin
74+
- name: Expand build artifact
75+
run: tar -xvf bin.tar
76+
- name: Test ${{matrix.group}}
77+
run: |-
78+
$params = @{
79+
SkipBuild = $true
80+
Test = $true
81+
ExcludeRustTests = $true
82+
Verbose = $true
83+
}
84+
./build.new.ps1 @params -PesterTestGroup ${{matrix.group}}
6185
86+
macos-build:
87+
runs-on: macos-latest
88+
steps:
89+
- uses: actions/checkout@v5
90+
- name: Install prerequisites
91+
run: ./build.new.ps1 -SkipBuild -Clippy -Verbose
92+
- name: Build
93+
run: ./build.new.ps1 -Clippy -Verbose
94+
- name: Run rust tests
95+
run: ./build.new.ps1 -SkipBuild -Test -ExcludePesterTests -Verbose
96+
- name: Prepare build artifact
97+
run: tar -cvf bin.tar bin/
98+
- name: Upload build artifact
99+
uses: actions/upload-artifact@v4
100+
with:
101+
name: macos-bin
102+
path: bin.tar
103+
macos-pester:
104+
needs: macos-build
105+
strategy:
106+
fail-fast: false
107+
matrix:
108+
group: [dsc, adapters, extensions, resources]
62109
runs-on: macos-latest
110+
steps:
111+
- uses: actions/checkout@v5
112+
- name: Download build artifact
113+
uses: actions/download-artifact@v4
114+
with:
115+
name: macos-bin
116+
- name: Expand build artifact
117+
run: tar -xvf bin.tar
118+
- name: Test ${{matrix.group}}
119+
run: |-
120+
$params = @{
121+
SkipBuild = $true
122+
Test = $true
123+
ExcludeRustTests = $true
124+
Verbose = $true
125+
}
126+
./build.new.ps1 @params -PesterTestGroup ${{matrix.group}}
63127
128+
# Windows
129+
windows-build:
130+
runs-on: windows-latest
131+
steps:
132+
- uses: actions/checkout@v5
133+
- name: Install prerequisites
134+
run: ./build.new.ps1 -SkipBuild -Clippy -Verbose
135+
- name: Build
136+
run: ./build.new.ps1 -Clippy -Verbose
137+
- name: Run rust tests
138+
run: ./build.new.ps1 -SkipBuild -Test -ExcludePesterTests -Verbose
139+
- name: List bin folder files
140+
run: Get-ChildItem bin
141+
- name: Prepare build artifact
142+
run: tar -cvf bin.tar bin
143+
- name: Upload build artifact
144+
uses: actions/upload-artifact@v4
145+
with:
146+
name: windows-bin
147+
path: bin.tar
148+
windows-pester:
149+
needs: windows-build
150+
strategy:
151+
fail-fast: false
152+
matrix:
153+
group: [dsc, adapters, extensions, resources]
154+
runs-on: windows-latest
64155
steps:
65-
- uses: actions/checkout@v3
66-
- name: Build
67-
shell: pwsh
68-
run: ./build.ps1 -clippy
69-
- name: Run tests
70-
shell: pwsh
71-
run: ./build.ps1 -test
156+
- uses: actions/checkout@v5
157+
- name: Download build artifact
158+
uses: actions/download-artifact@v4
159+
with:
160+
name: windows-bin
161+
- name: Expand build artifact
162+
run: tar -xvf bin.tar
163+
- name: Test ${{matrix.group}}
164+
run: |-
165+
$params = @{
166+
SkipBuild = $true
167+
Test = $true
168+
ExcludeRustTests = $true
169+
Verbose = $true
170+
}
171+
./build.new.ps1 @params -PesterTestGroup ${{matrix.group}}

.vscode/schemas/build.data.json

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
{
2+
"$schema": "https://json-schema.org/draft/2020-12/schema",
3+
"$ref": "./definitions.json#/$defs/BuildDataFile"
4+
}

0 commit comments

Comments
 (0)