test workflow per dataset #9
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Test Pie Dataset | |
on: | |
push: | |
branches: [main] | |
paths: | |
- "dataset_builders/pie/**" | |
- "data/datasets/**" | |
- "tests/dataset_builders/pie/**" | |
- "tests/fixtures/dataset_builders/pie/**" | |
- ".github/workflows/test_pie_datasets.yaml" | |
pull_request: | |
branches: [main, "release/*"] | |
paths: | |
- "dataset_builders/pie/**" | |
- "data/datasets/**" | |
- "tests/dataset_builders/pie/**" | |
- "tests/fixtures/dataset_builders/pie/**" | |
- ".github/workflows/test_pie_datasets.yaml" | |
jobs: | |
collect_datasets: # Job that list datasets | |
runs-on: ubuntu-latest | |
outputs: | |
datasets: ${{ steps.set-datasets.outputs.datasets }} # generate output name dir by using inner step output | |
steps: | |
- uses: actions/checkout@v4 | |
- id: set-datasets # Give it an id to handle to get step outputs in the outputs key above | |
uses: tj-actions/changed-files@v44 | |
with: | |
files_yaml: | | |
datasets: | |
- 'dataset_builders/pie/**' | |
- 'data/datasets/**' | |
- 'tests/dataset_builders/pie/**' | |
- 'tests/fixtures/dataset_builders/pie/**' | |
- name: Run step if dataset file(s) change | |
# NOTE: Ensure all outputs are prefixed by the same key used above e.g. `dataset_(...)` | |
# when trying to access the `any_changed` output. | |
if: steps.changed-files-yaml.outputs.datasets_any_changed == 'true' | |
env: | |
DATASETS_ALL_CHANGED_FILES: ${{ steps.changed-files-yaml.outputs.test_all_changed_files }} | |
# Define step output named dir base on ls command transformed to JSON thanks to jq | |
run: | | |
for file in ${DATASETS_ALL_CHANGED_FILES}; do | |
echo "$file was changed" | |
done | |
DATASETS=$(ls dataset_builders/pie | jq -R -s -c 'split("\n")[:-1]') | |
echo "datasets=$DATASETS" >> "$GITHUB_OUTPUT" | |
dataset_builder: | |
runs-on: ubuntu-latest | |
needs: [ collect_datasets ] # Depends on previous job | |
strategy: | |
matrix: | |
dataset: ${{fromJson(needs.collect_datasets.outputs.datasets)}} # List matrix strategy from directories dynamically | |
steps: | |
- run: echo ${{matrix.dataset}} |