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' 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