feat(CI): Allow running rust-release manually and in dry-run mode (#5232)

Example:
https://github.com/openai/codex/actions/runs/18544852356/job/52860637804
This commit is contained in:
Javi
2025-10-15 16:50:18 -07:00
committed by GitHub
parent 84c9b574f9
commit 5fa7844ad7

View File

@@ -10,6 +10,16 @@ on:
push: push:
tags: tags:
- "rust-v*.*.*" - "rust-v*.*.*"
workflow_dispatch:
inputs:
branch:
description: "Branch or tag to build"
required: true
default: "main"
dry_run:
description: "Skip publishing the release (dry run)"
type: boolean
default: false
concurrency: concurrency:
group: ${{ github.workflow }} group: ${{ github.workflow }}
@@ -20,8 +30,11 @@ jobs:
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- uses: actions/checkout@v5 - uses: actions/checkout@v5
with:
ref: ${{ github.event_name == 'workflow_dispatch' && github.event.inputs.branch || github.ref }}
- name: Validate tag matches Cargo.toml version - name: Validate tag matches Cargo.toml version
if: ${{ github.event_name == 'push' }}
shell: bash shell: bash
run: | run: |
set -euo pipefail set -euo pipefail
@@ -45,6 +58,10 @@ jobs:
echo "✅ Tag and Cargo.toml agree (${tag_ver})" echo "✅ Tag and Cargo.toml agree (${tag_ver})"
echo "::endgroup::" echo "::endgroup::"
- name: Skip tag validation (manual run)
if: ${{ github.event_name != 'push' }}
run: echo "Tag validation skipped for workflow_dispatch runs."
build: build:
needs: tag-check needs: tag-check
name: Build - ${{ matrix.runner }} - ${{ matrix.target }} name: Build - ${{ matrix.runner }} - ${{ matrix.target }}
@@ -77,6 +94,8 @@ jobs:
steps: steps:
- uses: actions/checkout@v5 - uses: actions/checkout@v5
with:
ref: ${{ github.event_name == 'workflow_dispatch' && github.event.inputs.branch || github.ref }}
- uses: dtolnay/rust-toolchain@1.90 - uses: dtolnay/rust-toolchain@1.90
with: with:
targets: ${{ matrix.target }} targets: ${{ matrix.target }}
@@ -362,6 +381,7 @@ jobs:
needs: build needs: build
name: release name: release
runs-on: ubuntu-latest runs-on: ubuntu-latest
if: ${{ github.event_name == 'push' && startsWith(github.ref, 'refs/tags/rust-v') }}
permissions: permissions:
contents: write contents: write
actions: read actions: read
@@ -456,7 +476,7 @@ jobs:
# npm docs: https://docs.npmjs.com/trusted-publishers # npm docs: https://docs.npmjs.com/trusted-publishers
publish-npm: publish-npm:
# Publish to npm for stable releases and alpha pre-releases with numeric suffixes. # Publish to npm for stable releases and alpha pre-releases with numeric suffixes.
if: ${{ needs.release.outputs.should_publish_npm == 'true' }} if: ${{ needs.release.result == 'success' && needs.release.outputs.should_publish_npm == 'true' }}
name: publish-npm name: publish-npm
needs: release needs: release
runs-on: ubuntu-latest runs-on: ubuntu-latest
@@ -525,6 +545,7 @@ jobs:
contents: write contents: write
needs: release needs: release
runs-on: ubuntu-latest runs-on: ubuntu-latest
if: ${{ needs.release.result == 'success' }}
steps: steps:
- name: Update latest-alpha-cli branch - name: Update latest-alpha-cli branch