1
1
name : CI
2
2
3
- on : [pull_request, push]
4
- # on: [push]
3
+ on :
4
+ pull_request :
5
+ push :
6
+ branches :
7
+ - master
8
+ - self-hosted
5
9
6
10
# Cancel a job if there's a new on on the same branch started.
7
11
# Based on https://stackoverflow.com/questions/58895283/stop-already-running-workflow-job-in-github-actions/67223051#67223051
23
27
steps :
24
28
- uses : actions/checkout@v4
25
29
- name : Install required packages
26
- run : sudo apt install --no-install-recommends --yes libhwloc-dev ocl-icd-opencl-dev
30
+ run : |
31
+ sudo apt-get update
32
+ sudo apt-get install --no-install-recommends --yes libhwloc-dev ocl-icd-opencl-dev
27
33
- name : Install cargo clippy
28
34
run : rustup component add clippy
29
35
- name : Run cargo clippy
@@ -40,42 +46,49 @@ jobs:
40
46
run : cargo fmt --all -- --check
41
47
42
48
test_release :
43
- runs-on : ubuntu-24.04
49
+ runs-on : ['self-hosted', 'linux', 'x64', '2xlarge']
44
50
name : Test in release mode
45
51
strategy :
46
52
matrix :
47
53
cargo-args : ['', '--features fixed-rows-to-discard']
54
+ fail-fast : false
48
55
env :
49
56
# Run all tests with multicore-SDR enabled.
50
57
FIL_PROOFS_USE_MULTICORE_SDR : true
51
58
steps :
52
59
- uses : actions/checkout@v4
53
60
- name : Install required packages
54
- run : sudo apt install --no-install-recommends --yes libhwloc-dev ocl-icd-opencl-dev
61
+ run : |
62
+ sudo apt-get update
63
+ sudo apt-get install --no-install-recommends --yes libhwloc-dev ocl-icd-opencl-dev
55
64
56
65
- name : Download the proof params
57
66
uses : ./.github/actions/proof-params-download
58
67
with :
59
68
github-token : ${{ secrets.GITHUB_TOKEN }}
60
69
70
+ - uses : dtolnay/rust-toolchain@21dc36fb71dd22e3317045c0c31a3f4249868b17
71
+ with :
72
+ toolchain : 1.83
73
+
61
74
- name : Run usual tests in release profile
62
75
run : cargo test --verbose --release --workspace --all-targets ${{ matrix.cargo-args }} -- --nocapture
63
76
- name : Run isolated PoRep tests in release profile
64
77
# Getting the cores does not work on GitHub Actions, hence skip that
65
78
# specific test.
66
79
run : cargo test --release -p storage-proofs-porep --features isolated-testing ${{ matrix.cargo-args }} -- --nocapture --skip stacked::vanilla::cores::tests::test_checkout_cores
67
80
- name : Run isolated update tests in release profile
68
- # Some `storage-proofs-update` tests need to run sequentially due to
69
- # their high memory usage.
70
- run : cargo test --release -p storage-proofs-update --features isolated-testing ${{ matrix.cargo-args }} -- --nocapture --test-threads=1
81
+ run : cargo test --release -p storage-proofs-update --features isolated-testing ${{ matrix.cargo-args }} -- --nocapture
71
82
72
83
test_ignored_release :
73
84
runs-on : ubuntu-24.04
74
85
name : Test ignored in release mode
75
86
steps :
76
87
- uses : actions/checkout@v4
77
88
- name : Install required packages
78
- run : sudo apt install --no-install-recommends --yes libhwloc-dev ocl-icd-opencl-dev
89
+ run : |
90
+ sudo apt-get update
91
+ sudo apt-get install --no-install-recommends --yes libhwloc-dev ocl-icd-opencl-dev
79
92
80
93
- name : Download the proof params
81
94
uses : ./.github/actions/proof-params-download
@@ -86,60 +99,88 @@ jobs:
86
99
run : cargo test --release --workspace -- ignored --nocapture
87
100
88
101
test_no_default_features :
89
- runs-on : ubuntu-24.04
102
+ runs-on : ['self-hosted', 'linux', 'x64', '2xlarge']
90
103
name : Test without default features
91
104
steps :
92
105
- uses : actions/checkout@v4
93
106
- name : Install required packages
94
- run : sudo apt install --no-install-recommends --yes libhwloc-dev ocl-icd-opencl-dev
107
+ run : |
108
+ sudo apt-get update
109
+ sudo apt-get install --no-install-recommends --yes libhwloc-dev ocl-icd-opencl-dev
95
110
96
111
- name : Download the proof params
97
112
uses : ./.github/actions/proof-params-download
98
113
with :
99
114
github-token : ${{ secrets.GITHUB_TOKEN }}
100
115
116
+ - uses : dtolnay/rust-toolchain@21dc36fb71dd22e3317045c0c31a3f4249868b17
117
+ with :
118
+ toolchain : 1.83
119
+
101
120
- name : Test ignored in release profile
102
121
run : cargo test --release --workspace --no-default-features
103
122
104
123
build_gpu :
105
- runs-on : ubuntu-24.04
124
+ runs-on : ['self-hosted', 'linux', 'x64', '2xlarge']
106
125
name : Build with various GPU support enabled
107
126
steps :
108
127
- uses : actions/checkout@v4
109
128
- name : Install required packages
110
- run : sudo apt install --no-install-recommends --yes libhwloc-dev nvidia-cuda-toolkit ocl-icd-opencl-dev
129
+ run : |
130
+ sudo apt-get update
131
+ sudo apt-get install --no-install-recommends --yes libhwloc-dev nvidia-cuda-toolkit ocl-icd-opencl-dev
132
+
133
+ - uses : dtolnay/rust-toolchain@21dc36fb71dd22e3317045c0c31a3f4249868b17
134
+ with :
135
+ toolchain : 1.83
111
136
112
137
- name : Build with `cuda` and `opencl` features enabled
113
138
run : cargo build --workspace --features cuda,opencl
114
139
- name : Build with `cuda-supraseal` feature enabled
115
140
run : CC=gcc-12 CXX=g++-12 NVCC_PREPEND_FLAGS='-ccbin /usr/bin/g++-12' cargo build --workspace --no-default-features --features cuda-supraseal
116
141
117
- # Commented out until we run it on hardware with actual GPUs.
118
- # test_gpu:
119
- # runs-on: ubuntu-24.04
120
- # name: Test on GPUs
121
- # strategy:
122
- # matrix:
123
- # test-args: ['', '--ignored']
124
- # env:
125
- # FIL_PROOFS_USE_GPU_COLUMN_BUILDER: true
126
- # FIL_PROOFS_USE_GPU_TREE_BUILDER: true
127
- # BELLMAN_CUDA_NVCC_ARGS: --fatbin --gpu-architecture=sm_75 --generate-code=arch=compute_75,code=sm_75
128
- # NEPTUNE_CUDA_NVCC_ARGS: --fatbin --gpu-architecture=sm_75 --generate-code=arch=compute_75,code=sm_75
129
- # steps:
130
- # - uses: actions/checkout@v4
131
- # - name: Install required packages
132
- # run: sudo apt install --no-install-recommends --yes libhwloc-dev nvidia-cuda-toolkit ocl-icd-opencl-dev
133
- #
134
- # - name: Download the proof params
135
- # uses: ./.github/actions/proof-params-download
136
- # with:
137
- # github-token: ${{ secrets.GITHUB_TOKEN }}
138
- #
139
- # - name: Test with CUDA
140
- # run: cargo test --verbose --release --workspace --features cuda -- --nocapture ${{ matrix.test-args }}
141
- # - name: Test with `cuda-supraseal`
142
- # run: CC=gcc-12 CXX=g++-12 NVCC_PREPEND_FLAGS='-ccbin /usr/bin/g++-12' cargo test -p filecoin-proofs --release --no-default-features --features cuda-supraseal -- --nocapture --test-threads=1 ${{ matrix.test-args }}
142
+ test_gpu :
143
+ runs-on : ['self-hosted', 'linux', 'x64', '2xlarge+gpu']
144
+ name : Test on GPUs
145
+ strategy :
146
+ matrix :
147
+ test-args : ['', '--ignored']
148
+ fail-fast : true
149
+ # NOTE: We only can run one 2xlarge+gpu job at a time at the moment.
150
+ max-parallel : 1
151
+ env :
152
+ FIL_PROOFS_USE_GPU_COLUMN_BUILDER : true
153
+ FIL_PROOFS_USE_GPU_TREE_BUILDER : true
154
+ BELLMAN_CUDA_NVCC_ARGS : --fatbin --gpu-architecture=sm_75 --generate-code=arch=compute_75,code=sm_75
155
+ NEPTUNE_CUDA_NVCC_ARGS : --fatbin --gpu-architecture=sm_75 --generate-code=arch=compute_75,code=sm_75
156
+ steps :
157
+ - uses : actions/checkout@v4
158
+ - name : Install CUDA drivers
159
+ run : |
160
+ curl -L -o nvidia-driver-local-repo-ubuntu2404-570.148.08_1.0-1_amd64.deb https://us.download.nvidia.com/tesla/570.148.08/nvidia-driver-local-repo-ubuntu2404-570.148.08_1.0-1_amd64.deb
161
+ sudo dpkg -i nvidia-driver-local-repo-ubuntu2404-570.148.08_1.0-1_amd64.deb
162
+ sudo cp /var/nvidia-driver-local-repo-ubuntu2404-570.148.08/nvidia-driver-local-*-keyring.gpg /usr/share/keyrings/
163
+ sudo apt-get update
164
+ sudo apt-get install --no-install-recommends --yes cuda-drivers
165
+ rm nvidia-driver-local-repo-ubuntu2404-570.148.08_1.0-1_amd64.deb
166
+ - name : Install required packages
167
+ run : |
168
+ sudo apt-get update
169
+ sudo apt-get install --no-install-recommends --yes libhwloc-dev nvidia-cuda-toolkit ocl-icd-opencl-dev
170
+
171
+ - name : Download the proof params
172
+ uses : ./.github/actions/proof-params-download
173
+ with :
174
+ github-token : ${{ secrets.GITHUB_TOKEN }}
175
+
176
+ - uses : dtolnay/rust-toolchain@21dc36fb71dd22e3317045c0c31a3f4249868b17
177
+ with :
178
+ toolchain : 1.83
179
+
180
+ - name : Test with CUDA
181
+ run : cargo test --verbose --release --workspace --features cuda -- --nocapture ${{ matrix.test-args }}
182
+ - name : Test with `cuda-supraseal`
183
+ run : CC=gcc-12 CXX=g++-12 NVCC_PREPEND_FLAGS='-ccbin /usr/bin/g++-12' cargo test -p filecoin-proofs --release --no-default-features --features cuda-supraseal -- --nocapture ${{ matrix.test-args }}
143
184
144
185
test_macos :
145
186
runs-on : macos-latest
0 commit comments