Update GitHub action script to make matrix of all solutions #88
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: Regression | |
on: | |
workflow_dispatch: | |
repository_dispatch: | |
pull_request: | |
paths-ignore: | |
- '**.md' | |
- '.github/workflows/**' | |
- '!.github/workflows/Regression.yml' | |
- '.github/config/uncovered_files.csv' | |
concurrency: | |
group: ${{ github.workflow }}-${{ github.ref }}-${{ github.head_ref || '' }}-${{ github.base_ref || '' }}-${{ github.ref != 'refs/heads/master' || github.sha }} | |
cancel-in-progress: true | |
jobs: | |
regression-test-benchmark-runner: | |
strategy: | |
fail-fast: false | |
matrix: | |
solution: [data.table, dplyr, pandas, pydatatable, spark, dask, juliadf, juliads, polars, arrow, duckdb, duckdb-latest, datafusion, all] | |
name: Regression Tests | |
runs-on: ubuntu-20.04 | |
env: | |
CC: gcc-10 | |
CXX: g++-10 | |
GEN: ninja | |
steps: | |
- uses: actions/checkout@v3 | |
with: | |
fetch-depth: 0 | |
- uses: actions/setup-python@v4 | |
with: | |
python-version: '3.10' | |
- name: Install libraries | |
shell: bash | |
run: ./_utils/setup-small.sh | |
- name: Install all solutions | |
shell: bash | |
run: source path.env && python3 _utils/install_all_solutions.py ${{ matrix.solution }} | |
- name: Generate 500mb datasets | |
shell: bash | |
run: ./_utils/generate-data-small.sh | |
- name: Turn swap off | |
shell: bash | |
run: sudo swapoff -a | |
- name: Run mini GroupBy benchmark | |
shell: bash | |
run: | | |
python3 _utils/prep_solutions.py --task=groupby --solution=${{ matrix.solution }} | |
source path.env | |
TEST_RUN=true ./run.sh | |
- name: Run mini Join benchmark | |
shell: bash | |
run: | | |
python3 _utils/prep_solutions.py --task=join --solution=${{ matrix.solution }} | |
source path.env | |
TEST_RUN=true ./run.sh | |
- name: Validate benchmark results and report generation | |
shell: bash | |
run: ./_utils/validate_no_errors.sh | |
- name: Create Archive | |
if: always() | |
shell: bash | |
run: | | |
cp *.csv out/ | |
zip -r out.zip out/ | |
# include this step to see what the latest versions are of every solution | |
- name: Print latest versions | |
if: always() | |
shell: bash | |
run: tail -n +1 */VERSION | |
- uses: actions/upload-artifact@v3 | |
if: always() | |
with: | |
name: out | |
path: out.zip | |
if-no-files-found: error |