From 38e41cf993db20580328546c8c6c36a97a7a9ac4 Mon Sep 17 00:00:00 2001 From: Stefan Krastanov Date: Wed, 19 Jun 2024 10:06:17 -0400 Subject: [PATCH] stable version of julia for jet and benchmark CI --- .github/workflows/benchmark.yml | 57 ++++++++++++++++++++++++++ .github/workflows/ci-julia-nightly.yml | 43 +++++++++++++++++++ 2 files changed, 100 insertions(+) create mode 100644 .github/workflows/benchmark.yml create mode 100644 .github/workflows/ci-julia-nightly.yml diff --git a/.github/workflows/benchmark.yml b/.github/workflows/benchmark.yml new file mode 100644 index 00000000..2e0c0b3f --- /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 new file mode 100644 index 00000000..dd794abd --- /dev/null +++ b/.github/workflows/ci-julia-nightly.yml @@ -0,0 +1,43 @@ +name: CI-nightly +on: + push: + 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 }} + runs-on: ${{ matrix.os }} + strategy: + fail-fast: false + matrix: + include: + - os: ubuntu-latest + arch: x64 + version: nightly + threads: 2 + jet: 'false' + - os: ubuntu-latest + arch: x64 + version: '1' + threads: 2 + jet: 'true' + steps: + - uses: actions/checkout@v4 + - uses: julia-actions/setup-julia@v1 + with: + version: ${{ matrix.version }} + arch: ${{ matrix.arch }} + - 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@v4 + with: + file: lcov.info + token: ${{ secrets.CODECOV_TOKEN }} \ No newline at end of file