diff options
author | Federico Ceratto <federico.ceratto@gmail.com> | 2023-04-25 12:29:17 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-04-25 19:29:17 +0800 |
commit | f0ae1ed54490bdce4f32cc7adf7ac3d85c706f3a (patch) | |
tree | 734e78f276621b0b535f9422d3c4426672259c32 /.github | |
parent | 897dff69dd3a284adb94392b085577068f792a1c (diff) | |
download | Nim-f0ae1ed54490bdce4f32cc7adf7ac3d85c706f3a.tar.gz |
Add benchmarking based on Minimize (#21566)
* Add benchmarking based on Minimize * Update .github/workflows/ci_bench.yml Co-authored-by: ringabout <43030857+ringabout@users.noreply.github.com> --------- Co-authored-by: ringabout <43030857+ringabout@users.noreply.github.com>
Diffstat (limited to '.github')
-rw-r--r-- | .github/workflows/ci_bench.yml | 117 |
1 files changed, 117 insertions, 0 deletions
diff --git a/.github/workflows/ci_bench.yml b/.github/workflows/ci_bench.yml new file mode 100644 index 000000000..b044ab51f --- /dev/null +++ b/.github/workflows/ci_bench.yml @@ -0,0 +1,117 @@ +name: Benchmarks CI +on: + pull_request: + push: + branches: + - 'devel' + +jobs: + build: + strategy: + fail-fast: false + matrix: + os: [ubuntu-20.04] + cpu: [amd64] + name: '${{ matrix.os }}' + runs-on: ${{ matrix.os }} + timeout-minutes: 60 # refs bug #18178 + steps: + - name: 'Checkout' + uses: actions/checkout@v3 + with: + fetch-depth: 2 + + - name: 'Install node.js 16.x' + uses: actions/setup-node@v3 + with: + node-version: '16.x' + + - name: 'Install dependencies (Linux amd64)' + if: runner.os == 'Linux' && matrix.cpu == 'amd64' + run: | + sudo apt-fast update -qq + DEBIAN_FRONTEND='noninteractive' \ + sudo apt-fast install --no-install-recommends -yq \ + libcurl4-openssl-dev libgc-dev libsdl1.2-dev libsfml-dev \ + valgrind libc6-dbg libblas-dev xorg-dev + + - name: 'Add build binaries to PATH' + shell: bash + run: echo "${{ github.workspace }}/bin" >> "${GITHUB_PATH}" + + - name: 'Build csourcesAny' + shell: bash + run: . ci/funs.sh && nimBuildCsourcesIfNeeded CC=gcc ucpu='${{ matrix.cpu }}' + + - name: 'Build koch' + shell: bash + run: nim c koch + + - name: 'Build Nim' + shell: bash + run: ./koch boot -d:release -d:nimStrictMode --lib:lib + + - name: 'Build Nimble' + shell: bash + run: ./koch nimble + + - name: 'Action' + shell: bash + run: nim c -r -d:release ci/action.nim + + - name: 'Checkout minimize' + uses: actions/checkout@v3 + with: + repository: 'nim-lang/ci_bench' + path: minimize + + - name: 'Run minimize benchmarks' + shell: bash + run: ./minimize/minimize ci-bench + + - name: 'Restore minimize cached database' + id: minimize-cache + uses: actions/cache/restore@v3 + with: + path: minimize.sqlite + key: minimize-db-key + + - name: 'Update minimize db' + shell: bash + run: ./minimize/minimize update-db + + # - name: 'Save minimize cached database' + #if: | + # github.event_name == 'push' && github.ref == 'refs/heads/devel' && + # matrix.target == 'linux' + # id: minimize-cache + # uses: actions/cache/save@v3 + # with: + # path: minimize.sqlite + # key: minimize-db-key + + - name: 'Generate minimize report' + shell: bash + run: ./minimize/minimize generate-report + + - name: 'Archive minimize report' + uses: actions/upload-artifact@v3 + with: + name: minimize-report + path: | + minimize/minimize.html + minimize/minimize.csv + + # Requires additional permissions, see: + # https://github.com/nim-lang/Nim/actions/runs/4778177321/jobs/8494423792?pr=21566 + # - name: 'Publish HTML report' + # uses: rossjrw/pr-preview-action@v1 + # with: + # source-dir: minimize + # umbrella-dir: minimize + # env: + # GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + + - name: Extract md summary + run: | + cat minimize/summary.md >> $GITHUB_STEP_SUMMARY |