123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116 |
- 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@v4
- with:
- fetch-depth: 2
- - name: 'Install node.js 20.x'
- uses: actions/setup-node@v4
- with:
- node-version: '20.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@v4
- with:
- repository: 'nim-lang/ci_bench'
- path: minimize
- - name: 'Run minimize benchmarks'
- shell: bash
- run: ./minimize/minimize ci-bench
- - name: 'Restore minimize cached database'
- uses: actions/cache/restore@v3
- with:
- path: minimize.csv
- 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'
- uses: actions/cache/save@v3
- with:
- path: minimize.csv
- 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
|