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
5
8
6
9
# Cancel a job if there's a new on on the same branch started.
7
10
# Based on https://stackoverflow.com/questions/58895283/stop-already-running-workflow-job-in-github-actions/67223051#67223051
23
26
steps :
24
27
- uses : actions/checkout@v4
25
28
- name : Install required packages
26
- run : sudo apt install --no-install-recommends --yes libhwloc-dev ocl-icd-opencl-dev
29
+ run : |
30
+ sudo apt-get update
31
+ sudo apt-get install --no-install-recommends --yes libhwloc-dev ocl-icd-opencl-dev
27
32
- name : Install cargo clippy
28
33
run : rustup component add clippy
29
34
- name : Run cargo clippy
@@ -40,42 +45,49 @@ jobs:
40
45
run : cargo fmt --all -- --check
41
46
42
47
test_release :
43
- runs-on : ubuntu-24.04
48
+ runs-on : ['self-hosted', 'linux', 'x64', '4xlarge']
44
49
name : Test in release mode
45
50
strategy :
46
51
matrix :
47
52
cargo-args : ['', '--features fixed-rows-to-discard']
53
+ fail-fast : false
48
54
env :
49
55
# Run all tests with multicore-SDR enabled.
50
56
FIL_PROOFS_USE_MULTICORE_SDR : true
51
57
steps :
52
58
- uses : actions/checkout@v4
53
59
- name : Install required packages
54
- run : sudo apt install --no-install-recommends --yes libhwloc-dev ocl-icd-opencl-dev
60
+ run : |
61
+ sudo apt-get update
62
+ sudo apt-get install --no-install-recommends --yes libhwloc-dev ocl-icd-opencl-dev
55
63
56
64
- name : Download the proof params
57
65
uses : ./.github/actions/proof-params-download
58
66
with :
59
67
github-token : ${{ secrets.GITHUB_TOKEN }}
60
68
69
+ # TODO: Remove this and other rust installation directives from jobs running
70
+ # on self-hosted runners once rust is available on these machines by default
71
+ - uses : dtolnay/rust-toolchain@21dc36fb71dd22e3317045c0c31a3f4249868b17
72
+ with :
73
+ toolchain : 1.83
74
+
61
75
- name : Run usual tests in release profile
62
76
run : cargo test --verbose --release --workspace --all-targets ${{ matrix.cargo-args }} -- --nocapture
63
77
- name : Run isolated PoRep tests in release profile
64
- # Getting the cores does not work on GitHub Actions, hence skip that
65
- # specific test.
66
- run : cargo test --release -p storage-proofs-porep --features isolated-testing ${{ matrix.cargo-args }} -- --nocapture --skip stacked::vanilla::cores::tests::test_checkout_cores
78
+ run : cargo test --release -p storage-proofs-porep --features isolated-testing ${{ matrix.cargo-args }} -- --nocapture --test-threads=1
67
79
- 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
80
+ run : cargo test --release -p storage-proofs-update --features isolated-testing ${{ matrix.cargo-args }} -- --nocapture
71
81
72
82
test_ignored_release :
73
83
runs-on : ubuntu-24.04
74
84
name : Test ignored in release mode
75
85
steps :
76
86
- uses : actions/checkout@v4
77
87
- name : Install required packages
78
- run : sudo apt install --no-install-recommends --yes libhwloc-dev ocl-icd-opencl-dev
88
+ run : |
89
+ sudo apt-get update
90
+ sudo apt-get install --no-install-recommends --yes libhwloc-dev ocl-icd-opencl-dev
79
91
80
92
- name : Download the proof params
81
93
uses : ./.github/actions/proof-params-download
@@ -86,60 +98,89 @@ jobs:
86
98
run : cargo test --release --workspace -- ignored --nocapture
87
99
88
100
test_no_default_features :
89
- runs-on : ubuntu-24.04
101
+ runs-on : ['self-hosted', 'linux', 'x64', '2xlarge']
90
102
name : Test without default features
91
103
steps :
92
104
- uses : actions/checkout@v4
93
105
- name : Install required packages
94
- run : sudo apt install --no-install-recommends --yes libhwloc-dev ocl-icd-opencl-dev
106
+ run : |
107
+ sudo apt-get update
108
+ sudo apt-get install --no-install-recommends --yes libhwloc-dev ocl-icd-opencl-dev
95
109
96
110
- name : Download the proof params
97
111
uses : ./.github/actions/proof-params-download
98
112
with :
99
113
github-token : ${{ secrets.GITHUB_TOKEN }}
100
114
115
+ - uses : dtolnay/rust-toolchain@21dc36fb71dd22e3317045c0c31a3f4249868b17
116
+ with :
117
+ toolchain : 1.83
118
+
101
119
- name : Test ignored in release profile
102
120
run : cargo test --release --workspace --no-default-features
103
121
104
122
build_gpu :
105
- runs-on : ubuntu-24.04
123
+ runs-on : ['self-hosted', 'linux', 'x64', '2xlarge']
106
124
name : Build with various GPU support enabled
107
125
steps :
108
126
- uses : actions/checkout@v4
109
127
- name : Install required packages
110
- run : sudo apt install --no-install-recommends --yes libhwloc-dev nvidia-cuda-toolkit ocl-icd-opencl-dev
128
+ run : |
129
+ sudo apt-get update
130
+ sudo apt-get install --no-install-recommends --yes libhwloc-dev nvidia-cuda-toolkit ocl-icd-opencl-dev
131
+
132
+ - uses : dtolnay/rust-toolchain@21dc36fb71dd22e3317045c0c31a3f4249868b17
133
+ with :
134
+ toolchain : 1.83
111
135
112
136
- name : Build with `cuda` and `opencl` features enabled
113
137
run : cargo build --workspace --features cuda,opencl
114
138
- name : Build with `cuda-supraseal` feature enabled
115
139
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
140
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 }}
141
+ test_gpu :
142
+ runs-on : ['self-hosted', 'linux', 'x64', 'xlarge+gpu']
143
+ name : Test on GPUs
144
+ strategy :
145
+ matrix :
146
+ test-args : ['', '--ignored']
147
+ fail-fast : false
148
+ env :
149
+ FIL_PROOFS_USE_GPU_COLUMN_BUILDER : true
150
+ FIL_PROOFS_USE_GPU_TREE_BUILDER : true
151
+ BELLMAN_CUDA_NVCC_ARGS : --fatbin --gpu-architecture=sm_75 --generate-code=arch=compute_75,code=sm_75
152
+ NEPTUNE_CUDA_NVCC_ARGS : --fatbin --gpu-architecture=sm_75 --generate-code=arch=compute_75,code=sm_75
153
+ steps :
154
+ - uses : actions/checkout@v4
155
+ # TODO: Move the driver installation to the AMI.
156
+ # https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/install-nvidia-driver.html
157
+ # https://www.nvidia.com/en-us/drivers/
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 --test-threads=1 ${{ matrix.test-args }}
143
184
144
185
test_macos :
145
186
runs-on : macos-latest
0 commit comments