Skip to content

Commit 6109045

Browse files
committed
Update release artifacts to work with recent BCR changes
1 parent 6b4edd0 commit 6109045

File tree

1 file changed

+43
-15
lines changed

1 file changed

+43
-15
lines changed

.github/workflows/release.yaml

Lines changed: 43 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -119,20 +119,34 @@ jobs:
119119
name: "${{ matrix.env.TARGET }}"
120120
path: ${{ github.workspace }}/crate_universe/target/artifacts/${{ matrix.env.TARGET }}
121121
if-no-files-found: error
122-
release:
123-
if: startsWith(github.ref, 'refs/heads/main')
122+
archive:
124123
needs: builds
125124
runs-on: ubuntu-22.04
125+
outputs:
126+
release_version: ${{ steps.version.outputs.release_version }}
127+
archive_sha256_base64: ${{ steps.archive.outputs.archive_sha256_base64 }}
126128
steps:
127129
- uses: actions/checkout@v4
128130
- uses: actions/download-artifact@v4
129131
with:
130132
path: ${{ github.workspace }}/crate_universe/target/artifacts
131133
- name: Detect the current version
134+
id: version
132135
run: |
133136
version="$(grep 'VERSION =' ${{ github.workspace }}/version.bzl | grep -o '[[:digit:].]\+')"
134137
echo "RELEASE_VERSION=${version}" >> $GITHUB_ENV
138+
echo "release_version=${version}" >> $GITHUB_OUTPUT
139+
- name: Comment out module overrides in .bazelrc files
140+
run: |
141+
# Find all .bazelrc files and comment out rules_rust module overrides
142+
find . -name "*.bazelrc" -type f | while read -r file; do
143+
if grep -q "^common --override_module=rules_rust=" "$file"; then
144+
echo "Commenting out module override in: $file"
145+
sed -i 's/^common --override_module=rules_rust=/# &/' "$file"
146+
fi
147+
done
135148
- name: Create the rules archive
149+
id: archive
136150
run: |
137151
# Update urls and sha256 values
138152
bazel ${BAZEL_STARTUP_FLAGS[@]} run //crate_universe/tools/urls_generator \
@@ -151,20 +165,34 @@ jobs:
151165
--exclude="examples" \
152166
.
153167
154-
# Save the sha256 checksum of the distro archive to the environment
168+
# Save the sha256 checksum of the distro archive to the environment and output
155169
sha256_base64="$(shasum --algorithm 256 ${{ github.workspace }}/.github/rules_rust.tar.gz | awk '{ print $1 }' | xxd -r -p | base64)"
156170
echo "ARCHIVE_SHA256_BASE64=${sha256_base64}" >> $GITHUB_ENV
171+
echo "archive_sha256_base64=${sha256_base64}" >> $GITHUB_OUTPUT
157172
env:
158173
CARGO_BAZEL_GENERATOR_URL: file://${{ github.workspace }}/crate_universe/target/artifacts/x86_64-unknown-linux-gnu/cargo-bazel
159174
ARTIFACTS_DIR: ${{ github.workspace }}/crate_universe/target/artifacts
160175
URL_PREFIX: https://github.com/${{ github.repository_owner }}/rules_rust/releases/download/${{ env.RELEASE_VERSION }}
161176

162-
# Upload the artifact in case creating a release fails so all artifacts can then be manually recovered.
177+
# Upload the archive for review in PRs or manual recovery if release fails
163178
- uses: actions/upload-artifact@v4
164179
with:
165180
name: "rules_rust.tar.gz"
166181
path: ${{ github.workspace }}/.github/rules_rust.tar.gz
167182
if-no-files-found: error
183+
release:
184+
if: startsWith(github.ref, 'refs/heads/main')
185+
needs: [archive]
186+
runs-on: ubuntu-22.04
187+
steps:
188+
- uses: actions/checkout@v4
189+
- uses: actions/download-artifact@v4
190+
with:
191+
path: ${{ github.workspace }}/artifacts
192+
- name: Set release version
193+
run: |
194+
echo "RELEASE_VERSION=${{ needs.archive.outputs.release_version }}" >> $GITHUB_ENV
195+
echo "ARCHIVE_SHA256_BASE64=${{ needs.archive.outputs.archive_sha256_base64 }}" >> $GITHUB_ENV
168196
- name: Generate release notes
169197
run: |
170198
# Generate the release notes
@@ -189,7 +217,7 @@ jobs:
189217
with:
190218
upload_url: ${{ steps.rules_rust_release.outputs.upload_url }}
191219
asset_name: rules_rust-${{ env.RELEASE_VERSION }}.tar.gz
192-
asset_path: ${{ github.workspace }}/.github/rules_rust.tar.gz
220+
asset_path: ${{ github.workspace }}/artifacts/rules_rust.tar.gz/rules_rust.tar.gz
193221
asset_content_type: application/gzip
194222

195223
# There must be a upload action for each platform triple we create
@@ -200,7 +228,7 @@ jobs:
200228
with:
201229
upload_url: ${{ steps.rules_rust_release.outputs.upload_url }}
202230
asset_name: cargo-bazel-aarch64-apple-darwin
203-
asset_path: ${{ github.workspace }}/crate_universe/target/artifacts/aarch64-apple-darwin/cargo-bazel
231+
asset_path: ${{ github.workspace }}/artifacts/aarch64-apple-darwin/cargo-bazel
204232
asset_content_type: application/octet-stream
205233
- name: "Upload aarch64-pc-windows-msvc"
206234
uses: actions/upload-release-asset@v1
@@ -209,7 +237,7 @@ jobs:
209237
with:
210238
upload_url: ${{ steps.rules_rust_release.outputs.upload_url }}
211239
asset_name: cargo-bazel-aarch64-pc-windows-msvc.exe
212-
asset_path: ${{ github.workspace }}/crate_universe/target/artifacts/aarch64-pc-windows-msvc/cargo-bazel.exe
240+
asset_path: ${{ github.workspace }}/artifacts/aarch64-pc-windows-msvc/cargo-bazel.exe
213241
asset_content_type: application/octet-stream
214242
- name: "Upload aarch64-unknown-linux-gnu"
215243
uses: actions/upload-release-asset@v1
@@ -218,7 +246,7 @@ jobs:
218246
with:
219247
upload_url: ${{ steps.rules_rust_release.outputs.upload_url }}
220248
asset_name: cargo-bazel-aarch64-unknown-linux-gnu
221-
asset_path: ${{ github.workspace }}/crate_universe/target/artifacts/aarch64-unknown-linux-gnu/cargo-bazel
249+
asset_path: ${{ github.workspace }}/artifacts/aarch64-unknown-linux-gnu/cargo-bazel
222250
asset_content_type: application/octet-stream
223251
- name: "Upload s390x-unknown-linux-gnu"
224252
uses: actions/upload-release-asset@v1
@@ -227,7 +255,7 @@ jobs:
227255
with:
228256
upload_url: ${{ steps.rules_rust_release.outputs.upload_url }}
229257
asset_name: cargo-bazel-s390x-unknown-linux-gnu
230-
asset_path: ${{ github.workspace }}/crate_universe/target/artifacts/s390x-unknown-linux-gnu/cargo-bazel
258+
asset_path: ${{ github.workspace }}/artifacts/s390x-unknown-linux-gnu/cargo-bazel
231259
asset_content_type: application/octet-stream
232260
- name: "Upload x86_64-apple-darwin"
233261
uses: actions/upload-release-asset@v1
@@ -236,7 +264,7 @@ jobs:
236264
with:
237265
upload_url: ${{ steps.rules_rust_release.outputs.upload_url }}
238266
asset_name: cargo-bazel-x86_64-apple-darwin
239-
asset_path: ${{ github.workspace }}/crate_universe/target/artifacts/x86_64-apple-darwin/cargo-bazel
267+
asset_path: ${{ github.workspace }}/artifacts/x86_64-apple-darwin/cargo-bazel
240268
asset_content_type: application/octet-stream
241269
- name: "Upload x86_64-pc-windows-gnu"
242270
uses: actions/upload-release-asset@v1
@@ -245,7 +273,7 @@ jobs:
245273
with:
246274
upload_url: ${{ steps.rules_rust_release.outputs.upload_url }}
247275
asset_name: cargo-bazel-x86_64-pc-windows-gnu.exe
248-
asset_path: ${{ github.workspace }}/crate_universe/target/artifacts/x86_64-pc-windows-gnu/cargo-bazel.exe
276+
asset_path: ${{ github.workspace }}/artifacts/x86_64-pc-windows-gnu/cargo-bazel.exe
249277
asset_content_type: application/octet-stream
250278
- name: "Upload x86_64-pc-windows-msvc"
251279
uses: actions/upload-release-asset@v1
@@ -254,7 +282,7 @@ jobs:
254282
with:
255283
upload_url: ${{ steps.rules_rust_release.outputs.upload_url }}
256284
asset_name: cargo-bazel-x86_64-pc-windows-msvc.exe
257-
asset_path: ${{ github.workspace }}/crate_universe/target/artifacts/x86_64-pc-windows-msvc/cargo-bazel.exe
285+
asset_path: ${{ github.workspace }}/artifacts/x86_64-pc-windows-msvc/cargo-bazel.exe
258286
asset_content_type: application/octet-stream
259287
- name: "Upload x86_64-unknown-linux-gnu"
260288
uses: actions/upload-release-asset@v1
@@ -263,7 +291,7 @@ jobs:
263291
with:
264292
upload_url: ${{ steps.rules_rust_release.outputs.upload_url }}
265293
asset_name: cargo-bazel-x86_64-unknown-linux-gnu
266-
asset_path: ${{ github.workspace }}/crate_universe/target/artifacts/x86_64-unknown-linux-gnu/cargo-bazel
294+
asset_path: ${{ github.workspace }}/artifacts/x86_64-unknown-linux-gnu/cargo-bazel
267295
asset_content_type: application/octet-stream
268296
- name: "Upload x86_64-unknown-linux-musl"
269297
uses: actions/upload-release-asset@v1
@@ -272,7 +300,7 @@ jobs:
272300
with:
273301
upload_url: ${{ steps.rules_rust_release.outputs.upload_url }}
274302
asset_name: cargo-bazel-x86_64-unknown-linux-musl
275-
asset_path: ${{ github.workspace }}/crate_universe/target/artifacts/x86_64-unknown-linux-musl/cargo-bazel
303+
asset_path: ${{ github.workspace }}/artifacts/x86_64-unknown-linux-musl/cargo-bazel
276304
asset_content_type: application/octet-stream
277305
- name: "Upload aarch64-unknown-linux-musl"
278306
uses: actions/upload-release-asset@v1
@@ -281,5 +309,5 @@ jobs:
281309
with:
282310
upload_url: ${{ steps.rules_rust_release.outputs.upload_url }}
283311
asset_name: cargo-bazel-aarch64-unknown-linux-musl
284-
asset_path: ${{ github.workspace }}/crate_universe/target/artifacts/aarch64-unknown-linux-musl/cargo-bazel
312+
asset_path: ${{ github.workspace }}/artifacts/aarch64-unknown-linux-musl/cargo-bazel
285313
asset_content_type: application/octet-stream

0 commit comments

Comments
 (0)