2020
2121jobs :
2222 lint :
23+ needs : build-setup
2324 name : Lint
2425 runs-on : ubuntu-latest
26+ env :
27+ RUSTFLAGS : ${{ needs.build-setup.outputs.rustflags }}
28+ SSH_PRIVATE_KEY : ${{ secrets.SSH_PRIVATE_KEY }}
2529
2630 steps :
2731 - name : Install libcurl-dev
3337 with :
3438 submodules : recursive
3539
40+ - name : Setup SSH agent
41+ if : ${{ env.SSH_PRIVATE_KEY != '' }}
42+ uses :
webfactory/[email protected] 43+ with :
44+ ssh-private-key : ${{ env.SSH_PRIVATE_KEY }}
45+
3646 - uses : actions/setup-python@v5
3747 with :
3848 python-version : " 3.11"
96106 - '.github/workflows/ci.yml'
97107
98108 test :
109+ needs : build-setup
99110 timeout-minutes : 20
100111 strategy :
101112 fail-fast : false
@@ -104,6 +115,9 @@ jobs:
104115
105116 name : Test (${{ matrix.os }})
106117 runs-on : ${{ matrix.os }}
118+ env :
119+ RUSTFLAGS : ${{ needs.build-setup.outputs.rustflags }}
120+ SSH_PRIVATE_KEY : ${{ secrets.SSH_PRIVATE_KEY }}
107121
108122 # Skip redundant checks for library releases
109123 if : " !startsWith(github.ref, 'refs/heads/release-library/')"
@@ -113,6 +127,13 @@ jobs:
113127 with :
114128 submodules : recursive
115129
130+ - name : Setup SSH agent
131+ if : ${{ env.SSH_PRIVATE_KEY != '' }}
132+ # Windows needs an older versino of the ssh agent: https://github.com/webfactory/ssh-agent/pull/17
133+ uses :
webfactory/[email protected] 134+ with :
135+ ssh-private-key : ${{ env.SSH_PRIVATE_KEY }}
136+
116137 - name : Install Rust Toolchain
117138 run : rustup toolchain install stable --profile minimal --no-self-update
118139
@@ -124,9 +145,13 @@ jobs:
124145 run : cargo test --workspace
125146
126147 test_all :
148+ needs : build-setup
127149 timeout-minutes : 15
128150 name : Test All Features (ubuntu-latest)
129151 runs-on : ubuntu-latest
152+ env :
153+ RUSTFLAGS : ${{ needs.build-setup.outputs.rustflags }}
154+ SSH_PRIVATE_KEY : ${{ secrets.SSH_PRIVATE_KEY }}
130155
131156 # Skip redundant checks for library releases
132157 if : " !startsWith(github.ref, 'refs/heads/release-library/')"
@@ -156,6 +181,12 @@ jobs:
156181 with :
157182 submodules : recursive
158183
184+ - name : Setup SSH agent
185+ if : ${{ env.SSH_PRIVATE_KEY != '' }}
186+ uses :
webfactory/[email protected] 187+ with :
188+ ssh-private-key : ${{ env.SSH_PRIVATE_KEY }}
189+
159190 - name : Install Rust Toolchain
160191 run : rustup toolchain install stable --profile minimal --no-self-update
161192
@@ -229,11 +260,19 @@ jobs:
229260 echo 'targets=["x86_64-unknown-linux-gnu"]' >> $GITHUB_OUTPUT
230261 echo 'platforms=["linux/amd64"]' >> $GITHUB_OUTPUT
231262 fi
263+
264+ if [[ "${{ github.event.pull_request.head.repo.fork }}" != "true" ]] || [[ "${{ needs.build-setup.outputs.full_ci }}" == "true" ]]; then
265+ echo "rustflags=--cfg sentry --cfg tokio_unstable" >> "$GITHUB_OUTPUT"
266+ else
267+ echo "rustflags=--cfg tokio_unstable" >> "$GITHUB_OUTPUT"
268+ fi
269+
232270 outputs :
233271 image_names : " ${{ steps.set-outputs.outputs.image_names }}"
234272 targets : " ${{ steps.set-outputs.outputs.targets }}"
235273 platforms : " ${{ steps.set-outputs.outputs.platforms }}"
236274 full_ci : " ${{ steps.set-outputs.outputs.full_ci }}"
275+ rustflags : " ${{ steps.set-outputs.outputs.rustflags }}"
237276
238277 build :
239278 needs : build-setup
@@ -326,9 +365,10 @@ jobs:
326365 "aarch64-unknown-linux-gnu": "ubuntu-22.04-arm"
327366 }')[matrix.target] }}
328367
329- if : " !startsWith(github.ref, 'refs/heads/release-library/') && !github.event.pull_request.head.repo.fork && github.actor != 'dependabot[bot]' && needs.build-setup.outputs.full_ci == 'true'"
368+ if : " ( !startsWith(github.ref, 'refs/heads/release-library/') && !github.event.pull_request.head.repo.fork && github.actor != 'dependabot[bot]') || needs.build-setup.outputs.full_ci == 'true'"
330369
331370 env :
371+ RUSTFLAGS : ${{ needs.build-setup.outputs.rustflags }}
332372 RELAY_BIN : " target/${{ matrix.target }}/release/relay"
333373 FEATURES : |-
334374 ${{fromJson('{
@@ -356,10 +396,15 @@ jobs:
356396 submodules : recursive
357397
358398 - uses : dtolnay/rust-toolchain@stable
399+
359400 - uses : swatinem/rust-cache@v2
360401 with :
361402 key : " ${{ github.job }}-${{ matrix.target }}-${{ matrix.image_name }}"
362403
404+ -
uses :
webfactory/[email protected] 405+ with :
406+ ssh-private-key : ${{ secrets.SSH_PRIVATE_KEY }}
407+
363408 - name : Compile
364409 run : |
365410 cargo build --release --locked --features "${FEATURES}" --target "${{ matrix.target }}"
@@ -670,9 +715,13 @@ jobs:
670715 exit "$status"
671716
672717 test_integration :
718+ needs : build-setup
673719 name : Integration Tests
674720 runs-on : ubuntu-latest
675721 timeout-minutes : 30
722+ env :
723+ RUSTFLAGS : ${{ needs.build-setup.outputs.rustflags }}
724+ SSH_PRIVATE_KEY : ${{ secrets.SSH_PRIVATE_KEY }}
676725
677726 # Skip redundant checks for library releases
678727 if : " !startsWith(github.ref, 'refs/heads/release-library/')"
@@ -719,6 +768,12 @@ jobs:
719768 with :
720769 key : ${{ github.job }}
721770
771+ - name : Setup SSH agent
772+ if : ${{ env.SSH_PRIVATE_KEY != '' }}
773+ uses :
webfactory/[email protected] 774+ with :
775+ ssh-private-key : ${{ env.SSH_PRIVATE_KEY }}
776+
722777 - uses : actions/setup-python@v5
723778 with :
724779 python-version : " 3.11"
0 commit comments