diff --git a/.github/workflows/benchmark.yml b/.github/workflows/benchmark.yml new file mode 100644 index 0000000..2e0c0b3 --- /dev/null +++ b/.github/workflows/benchmark.yml @@ -0,0 +1,57 @@ +name: Performance tracking +on: + pull_request: + +env: + PYTHON: ~ + +jobs: + performance-tracking: + runs-on: ubuntu-latest + #runs-on: self-hosted + steps: + # setup + - uses: actions/checkout@v4 + - uses: julia-actions/setup-julia@latest + with: + version: '1.10' + - uses: julia-actions/julia-buildpkg@latest + - name: install dependencies + run: julia -e 'using Pkg; pkg"add PkgBenchmark BenchmarkCI@0.1"' + + # run the benchmark suite + - name: run benchmarks + run: | + julia -e ' + using BenchmarkCI + BenchmarkCI.judge() + BenchmarkCI.displayjudgement() + ' + + # generate and record the benchmark result as markdown + - name: generate benchmark result + run: | + body=$(julia -e ' + using BenchmarkCI + + let + judgement = BenchmarkCI._loadjudge(BenchmarkCI.DEFAULT_WORKSPACE) + title = "Benchmark Result" + ciresult = BenchmarkCI.CIResult(; judgement, title) + BenchmarkCI.printcommentmd(stdout::IO, ciresult) + end + ') + body="${body//'%'/'%25'}" + body="${body//$'\n'/'%0A'}" + body="${body//$'\r'/'%0D'}" + echo $body > ./benchmark-result.artifact + + # record the pull request number + - name: record pull request number + run: echo ${{ github.event.pull_request.number }} > ./pull-request-number.artifact + + # save as artifacts (performance tracking (comment) workflow will use it) + - uses: actions/upload-artifact@v4 + with: + name: performance-tracking + path: ./*.artifact diff --git a/.github/workflows/ci-julia-nightly.yml b/.github/workflows/ci-julia-nightly.yml index 0a982e6..dd794ab 100644 --- a/.github/workflows/ci-julia-nightly.yml +++ b/.github/workflows/ci-julia-nightly.yml @@ -4,6 +4,8 @@ on: branches: [master, main] tags: ["*"] pull_request: +env: + PYTHON: ~ jobs: test: name: Julia ${{ matrix.version }} - t=${{ matrix.threads }} - jet=${{ matrix.jet }} - ${{ matrix.os }} - ${{ matrix.arch }} - ${{ github.event_name }} @@ -28,22 +30,14 @@ jobs: with: version: ${{ matrix.version }} arch: ${{ matrix.arch }} - - uses: actions/cache@v3 - env: - cache-name: cache-artifacts - with: - path: ~/.julia/artifacts - key: ${{ runner.os }}-test-${{ env.cache-name }}-${{ hashFiles('**/Project.toml') }} - restore-keys: | - ${{ runner.os }}-test-${{ env.cache-name }}- - ${{ runner.os }}-test- - ${{ runner.os }}- + - uses: julia-actions/cache@v2 - uses: julia-actions/julia-buildpkg@v1 - uses: julia-actions/julia-runtest@v1 env: JULIA_NUM_THREADS: ${{ matrix.threads }} JET_TEST: ${{ matrix.jet }} - uses: julia-actions/julia-processcoverage@v1 - - uses: codecov/codecov-action@v3 + - uses: codecov/codecov-action@v4 with: - file: lcov.info \ No newline at end of file + file: lcov.info + token: ${{ secrets.CODECOV_TOKEN }} \ No newline at end of file