Try to fine tune benchmark plots #277
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: "QA" | |
# Runs on each push and tests flowR for the default configuration | |
# Depending on the targets etc. this may perform many more checks! | |
'on': | |
push: | |
paths-ignore: | |
- '**/*.md' | |
- 'LICENSE' | |
- '.gitignore' | |
- 'scripts/**' | |
pull_request: | |
types: [ opened, synchronize ] | |
branches: [ main ] | |
workflow_dispatch: | |
inputs: | |
force-full: | |
description: "Force all steps" | |
required: true | |
default: false | |
type: boolean | |
concurrency: | |
group: ${{ github.workflow }}-${{ github.ref }} | |
cancel-in-progress: true | |
permissions: | |
deployments: write | |
contents: write | |
jobs: | |
debug: | |
name: "Debug" | |
runs-on: ubuntu-latest | |
steps: | |
- name: "Debug state" | |
run: | | |
echo "Event: ${{ github.event_name }}" | |
echo "Ref: ${{ github.ref }}" | |
echo "Base Ref: ${{ github.base_ref }}" | |
lint: | |
needs: [ debug ] | |
name: "Linting" | |
if: ${{ github.event_name != 'pull_request' || github.event.pull_request.base.ref != 'main' }} | |
uses: Code-Inspect/flowr/.github/workflows/run.yaml@main | |
with: | |
r-version: '' | |
action: lint | |
test: | |
needs: [ debug ] | |
name: "Test Suite (coverage)" | |
if: ${{ github.event_name != 'pull_request' || github.event.pull_request.base.ref != 'main' }} | |
uses: Code-Inspect/flowr/.github/workflows/run.yaml@main | |
with: | |
action: test-full | |
coverage: true | |
performance-test: | |
needs: [ test ] | |
name: "Run Performance Tests" | |
if: ${{ always() && !failure() && (inputs.force-full || (github.event_name == 'push' && github.ref == 'refs/heads/main')) }} | |
uses: Code-Inspect/flowr/.github/workflows/run.yaml@main | |
strategy: | |
fail-fast: true | |
matrix: | |
# currently we have a duplication, add your benchmark names here and in `performance-test-upload` | |
name: ['artificial', 'social-science'] | |
with: | |
action: performance-test -- 1 "${{ matrix.name }}" | |
coverage: false | |
benchmark: ${{ matrix.name }} | |
timeout-minutes: 400 | |
performance-test-upload: | |
name: "Upload Performance Test Results" | |
runs-on: ubuntu-latest | |
needs: [ performance-test ] | |
steps: | |
- name: "Checkout Repository" | |
uses: actions/checkout@v4 | |
with: | |
token: ${{ secrets.RELEASE_TOKEN }} | |
- name: "⬇️ Get benchmark Artifacts (artificial)" | |
uses: actions/download-artifact@v3 | |
with: | |
name: benchmark-results-artificial | |
path: benchmark-ai/ | |
- name: "⬇️ Get benchmark Artifacts (social-science)" | |
uses: actions/download-artifact@v3 | |
with: | |
name: benchmark-results-social-science | |
path: benchmark-ss/ | |
- name: Name and Email for Git (config) and update | |
run: | | |
git config --local user.email "[email protected]" | |
git config --local user.name "GitHub Action" | |
# currently we have a duplication, add your benchmark names here and in `performance-test` | |
- name: "Merge and Produce Performance Results (artificial)" | |
uses: benchmark-action/github-action-benchmark@v1 | |
with: | |
name: '"artificial" Benchmark Suite' | |
tool: 'customSmallerIsBetter' | |
output-file-path: benchmark-ai/artificial/artificial-graph.json | |
github-token: ${{ secrets.GITHUB_TOKEN }} | |
fail-on-alert: false | |
summary-always: true | |
comment-on-alert: true | |
comment-always: true | |
skip-fetch-gh-pages: true | |
gh-repository: ${{ github.repository }} | |
benchmark-data-dir-path: wiki/stats/benchmark/ | |
auto-push: false | |
- name: "Merge and Produce Performance Results (social-science)" | |
uses: benchmark-action/github-action-benchmark@v1 | |
with: | |
name: '"social-science" Benchmark Suite' | |
tool: 'customSmallerIsBetter' | |
output-file-path: benchmark-ss/social-science/social-science-graph.json | |
github-token: ${{ secrets.GITHUB_TOKEN }} | |
fail-on-alert: false | |
summary-always: true | |
comment-on-alert: true | |
comment-always: true | |
skip-fetch-gh-pages: true | |
gh-repository: ${{ github.repository }} | |
benchmark-data-dir-path: wiki/stats/benchmark/ | |
auto-push: false | |
- name: "⬆️ Push benchmark results" | |
if: github.event_name != 'pull_request' # just an extra guard | |
# we manipulate the name of the last commit message | |
run: | | |
git add -f "wiki/stats/benchmark/" | |
git commit --amend -m "[skip ci] doc: new benchmark data" | |
- name: Push changes | |
uses: ad-m/github-push-action@master | |
with: | |
branch: main | |
github_token: ${{ secrets.RELEASE_TOKEN }} | |
force: true | |
full-test: | |
needs: [ lint ] | |
name: "Full Test Suite" | |
if: ${{ always() && !failure() && (inputs.force-full || (github.event_name == 'pull_request' && github.event.pull_request.base.ref == 'main')) }} | |
uses: Code-Inspect/flowr/.github/workflows/full-test.yaml@main | |
deploy-doc: | |
needs: [ test, full-test, performance-test-upload ] | |
name: "Deploy Doc. (only on main)" | |
if: ${{ always() && !failure() && (inputs.force-full || (github.event_name == 'push' && github.ref == 'refs/heads/main')) }} | |
uses: Code-Inspect/flowr/.github/workflows/deploy-doc.yaml@main |