Retry nextest archive inside platform workflow

This commit is contained in:
starr-openai
2026-05-29 08:38:50 -07:00
parent c3245411dc
commit 765f6639e2
2 changed files with 37 additions and 21 deletions

View File

@@ -47,6 +47,10 @@ on:
required: false
default: false
type: boolean
retry_archive:
required: false
default: false
type: boolean
# Caller workflow-level env does not flow through workflow_call, so keep the
# Cargo git transport hardening on the archive and shard jobs directly here.
@@ -57,7 +61,10 @@ jobs:
archive:
name: Build nextest archive
runs-on: ${{ inputs.archive_runner_group != '' && fromJSON(format('{{"group":"{0}","labels":"{1}"}}', inputs.archive_runner_group, inputs.archive_runner_labels)) || inputs.archive_runner != '' && inputs.archive_runner || inputs.runner_group != '' && fromJSON(format('{{"group":"{0}","labels":"{1}"}}', inputs.runner_group, inputs.runner_labels)) || inputs.runner }}
continue-on-error: ${{ inputs.retry_archive }}
timeout-minutes: 60
outputs:
completed: ${{ steps.archive_completed.outputs.completed }}
defaults:
run:
working-directory: codex-rs
@@ -71,7 +78,7 @@ jobs:
SCCACHE_CACHE_SIZE: 10G
NEXTEST_ARCHIVE_FILE: nextest-${{ inputs.artifact_id }}.tar.zst
TEST_HELPERS_ARTIFACT: nextest-test-helpers-${{ inputs.artifact_id }}
steps:
steps: &archive_steps
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
persist-credentials: false
@@ -249,6 +256,11 @@ jobs:
if-no-files-found: error
retention-days: 1
- name: Mark archive complete
id: archive_completed
shell: bash
run: echo "completed=true" >> "$GITHUB_OUTPUT"
- name: Save cargo home cache
if: always() && !cancelled() && steps.cache_cargo_home_restore.outputs.cache-hit != 'true'
continue-on-error: true
@@ -286,9 +298,30 @@ jobs:
echo '```';
} >> "$GITHUB_STEP_SUMMARY"
archive_retry:
name: Retry build nextest archive
needs: archive
if: inputs.retry_archive && always() && needs.archive.outputs.completed != 'true'
runs-on: ${{ inputs.archive_runner_group != '' && fromJSON(format('{{"group":"{0}","labels":"{1}"}}', inputs.archive_runner_group, inputs.archive_runner_labels)) || inputs.archive_runner != '' && inputs.archive_runner || inputs.runner_group != '' && fromJSON(format('{{"group":"{0}","labels":"{1}"}}', inputs.runner_group, inputs.runner_labels)) || inputs.runner }}
timeout-minutes: 60
outputs:
completed: ${{ steps.archive_completed.outputs.completed }}
defaults:
run:
working-directory: codex-rs
env:
ARCHIVE_CACHE_RUNNER: ${{ inputs.archive_runner != '' && inputs.archive_runner || inputs.runner }}
USE_SCCACHE: ${{ inputs.use_sccache && 'true' || 'false' }}
CARGO_INCREMENTAL: "0"
SCCACHE_CACHE_SIZE: 10G
NEXTEST_ARCHIVE_FILE: nextest-${{ inputs.artifact_id }}.tar.zst
TEST_HELPERS_ARTIFACT: nextest-test-helpers-${{ inputs.artifact_id }}
steps: *archive_steps
shard:
name: Tests shard ${{ matrix.shard }}/4
needs: archive
needs: [archive, archive_retry]
if: always() && (needs.archive.outputs.completed == 'true' || needs.archive_retry.outputs.completed == 'true')
runs-on: ${{ inputs.runner_group != '' && fromJSON(format('{{"group":"{0}","labels":"{1}"}}', inputs.runner_group, inputs.runner_labels)) || inputs.runner }}
timeout-minutes: 60
defaults:

View File

@@ -489,7 +489,6 @@ jobs:
tests_linux_arm64:
name: Tests — ubuntu-24.04-arm - aarch64-unknown-linux-gnu
continue-on-error: true
uses: ./.github/workflows/rust-ci-full-nextest-platform.yml
with:
runner: ubuntu-24.04-arm
@@ -499,21 +498,7 @@ jobs:
profile: ci-test
artifact_id: linux-arm64
use_sccache: true
secrets: inherit
tests_linux_arm64_retry:
name: Tests — ubuntu-24.04-arm - aarch64-unknown-linux-gnu (retry)
needs: tests_linux_arm64
if: always() && needs.tests_linux_arm64.result != 'success'
uses: ./.github/workflows/rust-ci-full-nextest-platform.yml
with:
runner: ubuntu-24.04-arm
runner_group: codex-runners
runner_labels: codex-linux-arm64
target: aarch64-unknown-linux-gnu
profile: ci-test
artifact_id: linux-arm64-retry
use_sccache: true
retry_archive: true
secrets: inherit
tests_windows_x64:
@@ -559,7 +544,6 @@ jobs:
tests_macos_aarch64,
tests_linux_x64_remote,
tests_linux_arm64,
tests_linux_arm64_retry,
tests_windows_x64,
tests_windows_arm64,
]
@@ -577,7 +561,6 @@ jobs:
echo "test macos : ${{ needs.tests_macos_aarch64.result }}"
echo "test linux : ${{ needs.tests_linux_x64_remote.result }}"
echo "test arm64 : ${{ needs.tests_linux_arm64.result }}"
echo "test arm64 retry: ${{ needs.tests_linux_arm64_retry.result }}"
echo "test winx64: ${{ needs.tests_windows_x64.result }}"
echo "test winarm: ${{ needs.tests_windows_arm64.result }}"
[[ '${{ needs.argument_comment_lint_package.result }}' == 'success' ]] || { echo 'argument_comment_lint_package failed'; exit 1; }
@@ -587,7 +570,7 @@ jobs:
[[ '${{ needs.lint_build.result }}' == 'success' ]] || { echo 'lint_build failed'; exit 1; }
[[ '${{ needs.tests_macos_aarch64.result }}' == 'success' ]] || { echo 'tests_macos_aarch64 failed'; exit 1; }
[[ '${{ needs.tests_linux_x64_remote.result }}' == 'success' ]] || { echo 'tests_linux_x64_remote failed'; exit 1; }
[[ '${{ needs.tests_linux_arm64.result }}' == 'success' || '${{ needs.tests_linux_arm64_retry.result }}' == 'success' ]] || { echo 'tests_linux_arm64 failed'; exit 1; }
[[ '${{ needs.tests_linux_arm64.result }}' == 'success' ]] || { echo 'tests_linux_arm64 failed'; exit 1; }
[[ '${{ needs.tests_windows_x64.result }}' == 'success' ]] || { echo 'tests_windows_x64 failed'; exit 1; }
[[ '${{ needs.tests_windows_arm64.result }}' == 'success' ]] || { echo 'tests_windows_arm64 failed'; exit 1; }