11name : CI
2- on : [push, pull_request, workflow_dispatch]
2+ on :
3+ - push
4+ - pull_request
35env :
46 ProjectName : ${{ github.event.repository.name }}
5- RustProjectName : cryptobase
67
78jobs :
89 check_format :
910 runs-on : ubuntu-latest
1011 steps :
11- - name : Checkout code
12- uses : actions/checkout@v4
13-
14- - name : Setup .NET
15- uses : actions/setup-dotnet@v4
12+ - uses : actions/checkout@v5
13+ - uses : actions/setup-dotnet@v5
1614 with :
17- dotnet-version : 8 .0.x
15+ dotnet-version : 10 .0.x
1816
1917 - name : Check .NET format
2018 working-directory : src
2119 run : dotnet format -v diag --verify-no-changes
2220
23- - uses : Swatinem/rust-cache@v2
24-
25- - name : Install Rust
26- run : |
27- rustup set profile minimal
28- rustup toolchain install stable --component clippy
29- rustup default stable
30- rustup override set stable
31-
32- - name : Check Rust format
33- working-directory : native/${{ env.RustProjectName }}
34- run : cargo clippy --release --all-targets --all-features
35-
36- build-native :
37- strategy :
38- matrix :
39- include :
40- - os : windows-latest
41- target : x86_64-pc-windows-msvc
42- - os : windows-latest
43- target : i686-pc-windows-msvc
44- - os : windows-latest
45- target : aarch64-pc-windows-msvc
46- - os : ubuntu-latest
47- target : x86_64-unknown-linux-gnu
48- - os : ubuntu-latest
49- target : aarch64-unknown-linux-gnu
50- - os : ubuntu-latest
51- target : armv7-unknown-linux-gnueabihf
52- - os : ubuntu-latest
53- target : x86_64-unknown-linux-musl
54- - os : ubuntu-latest
55- target : aarch64-unknown-linux-musl
56- - os : ubuntu-latest
57- target : armv7-unknown-linux-musleabihf
58- - os : macos-latest
59- target : x86_64-apple-darwin
60- - os : macos-latest
61- target : aarch64-apple-darwin
62- runs-on : ${{ matrix.os }}
63- env :
64- RUST_BACKTRACE : full
65- steps :
66- - name : Checkout code
67- uses : actions/checkout@v4
68-
69- - uses : Swatinem/rust-cache@v2
70-
71- - name : Install Rust
72- run : |
73- rustup set profile minimal
74- rustup toolchain install stable
75- rustup default stable
76- rustup override set stable
77- rustup target add --toolchain stable ${{ matrix.target }}
78-
79- - name : Install cross
80- if : matrix.os == 'ubuntu-latest'
81- run : cargo install cross
82-
83- - name : Build ${{ matrix.target }}
84- shell : pwsh
85- run : .\build\build-native.ps1 ${{ matrix.target }}
86-
87- - name : Upload ${{ matrix.target }}
88- uses : actions/upload-artifact@v4
89- with :
90- name : runtimes
91- path : src/${{ env.ProjectName }}/runtimes/
92-
9321 test :
94- needs : [build-native]
9522 runs-on : ${{ matrix.os }}
96- env :
97- RUST_BACKTRACE : full
9823 strategy :
9924 matrix :
10025 os :
@@ -103,18 +28,10 @@ jobs:
10328 - macos-latest
10429
10530 steps :
106- - name : Checkout code
107- uses : actions/checkout@v4
108-
109- - uses : actions/download-artifact@v4
31+ - uses : actions/checkout@v5
32+ - uses : actions/setup-dotnet@v5
11033 with :
111- name : runtimes
112- path : src/${{ env.ProjectName }}/runtimes/
113-
114- - name : Setup .NET
115- uses : actions/setup-dotnet@v4
116- with :
117- dotnet-version : 8.0.x
34+ dotnet-version : 10.0.x
11835
11936 - name : Run tests
12037 working-directory : src/${{ env.ProjectName }}.Tests
12441 needs : [check_format, test]
12542 if : ${{ github.event_name == 'push' && startsWith(github.ref, 'refs/tags/') }}
12643 runs-on : ubuntu-latest
44+ permissions :
45+ packages : write
12746 strategy :
12847 matrix :
12948 NugetProjectName :
@@ -132,17 +51,14 @@ jobs:
13251 - CryptoBase.BouncyCastle
13352
13453 steps :
135- - name : Checkout code
136- uses : actions/checkout@v4
137-
138- - name : Setup .NET
139- uses : actions/setup-dotnet@v4
54+ - uses : actions/checkout@v5
55+ - uses : actions/setup-dotnet@v5
14056 with :
141- dotnet-version : 8 .0.x
57+ dotnet-version : 10 .0.x
14258
14359 - name : Build
14460 working-directory : src/${{ matrix.NugetProjectName }}
145- run : dotnet build -c Release
61+ run : dotnet pack
14662
14763 - name : Push nuget packages
14864 working-directory : src/${{ matrix.NugetProjectName }}/bin/Release
0 commit comments