Skip to content

Dataset Validation and Verification #1071

Dataset Validation and Verification

Dataset Validation and Verification #1071

name: Dataset Validation and Verification
permissions:
contents: read
on:
workflow_dispatch:
inputs:
test-run:
description: "Indicate this is a test run (with few entries)"
required: false
default: true
type: boolean
category:
description: "Dataset category to validate"
required: false
default: "bug-fix"
type: choice
options:
- "bug-fix"
- "cf-1"
- "cf-2"
- "cf-3"
- "cf-4"
entries-override:
description: "Optional JSON array of entry IDs to validate (overrides get-entries)"
required: false
default: ""
type: string
schedule:
- cron: "0 0 * * 0"
jobs:
get-entries:
if: ${{ inputs.entries-override == '' || inputs.entries-override == null }}
uses: ./.github/workflows/get-entries.yml
with:
modified-only: false
test-run: ${{ inputs.test-run || false }}
category: ${{ inputs.category || 'bug-fix' }}
resolve-entries:
runs-on: ubuntu-latest
needs: get-entries
if: always()
outputs:
entries: ${{ steps.pick.outputs.entries }}
steps:
- id: pick
run: |
if [[ -n "${{ inputs.entries-override }}" ]]; then
echo "entries=${{ inputs.entries-override }}" >> "$GITHUB_OUTPUT"
else
echo 'entries=${{ needs.get-entries.outputs.entries }}' >> "$GITHUB_OUTPUT"
fi
verify-build-and-tests:
runs-on: [GitHub-BCBench]
needs: resolve-entries
if: needs.resolve-entries.outputs.entries != '[]' && needs.resolve-entries.outputs.entries != ''
environment:
name: ado-read
deployment: false
permissions:
contents: read
id-token: write
name: ${{ matrix.entry }}
strategy:
fail-fast: false
matrix:
entry: ${{ fromJson(needs.resolve-entries.outputs.entries) }}
steps:
- name: Checkout repository
uses: actions/checkout@v5
- name: Setup BC container
id: setup-env
timeout-minutes: 40
uses: ./.github/actions/setup-bc-container
with:
instance-id: ${{ matrix.entry }}
azure-client-id: ${{ secrets.AZURE_CLIENT_ID }}
azure-tenant-id: ${{ secrets.AZURE_TENANT_ID }}
github-token: ${{ secrets.GITHUB_TOKEN }}
- name: Run build and test verification for ${{ matrix.entry }}
timeout-minutes: 60
run: .\scripts\Verify-BuildAndTests.ps1 -InstanceId "${{ matrix.entry }}" -RepoPath "${{ steps.setup-env.outputs.repo_path }}"
shell: pwsh