Skip to content

Safe benchmark

Safe benchmark #539

Workflow file for this run

name: CI
on:
push:
branches:
- main
tags: ['*']
pull_request:
workflow_dispatch:
concurrency:
# Skip intermediate builds: always.
# Cancel intermediate builds: only if it is a pull request build.
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: ${{ startsWith(github.ref, 'refs/pull/') }}
jobs:
test:
name: Test - ${{ matrix.pkg.name }} - Julia ${{ matrix.version }}
runs-on: ${{ matrix.os }}
timeout-minutes: 60
permissions: # needed to allow julia-actions/cache to proactively delete old caches that it has created
actions: write
contents: read
strategy:
fail-fast: false
matrix:
pkg:
- name: DifferentiationInterface
dir: './DifferentiationInterface'
- name: DifferentiationInterfaceTest
dir: './DifferentiationInterfaceTest'
version:
- '1'
os:
- ubuntu-latest
arch:
- x64
steps:
- uses: actions/checkout@v4
- uses: julia-actions/setup-julia@v2
with:
version: ${{ matrix.version }}
arch: ${{ matrix.arch }}
- uses: julia-actions/cache@v1
- name: Install dependencies (replaces buildpkg)
run: julia --project=${{ matrix.pkg.dir}}/ -e '
using Pkg;
Pkg.Registry.update();
if "${{ matrix.pkg.name}}" == "DifferentiationInterfaceTest";
Pkg.develop(PackageSpec(path="./DifferentiationInterface"));
end;
Pkg.instantiate();'
- uses: julia-actions/julia-runtest@v1
with:
project: ${{ matrix.pkg.dir }}
- uses: julia-actions/julia-processcoverage@v1
with:
directories: ${{ matrix.pkg.dir }}/src,${{ matrix.pkg.dir }}/ext
- uses: codecov/codecov-action@v4
with:
files: lcov.info
token: ${{ secrets.CODECOV_TOKEN }}
fail_ci_if_error: true
docs:
name: Docs - ${{ matrix.pkg.name }}
runs-on: ubuntu-latest
permissions:
contents: write
statuses: write
strategy:
fail-fast: false
matrix:
pkg:
- name: DifferentiationInterface
dir: './DifferentiationInterface'
- name: DifferentiationInterfaceTest
dir: './DifferentiationInterfaceTest'
steps:
- uses: actions/checkout@v4
- uses: julia-actions/setup-julia@v2
with:
version: '1'
- uses: julia-actions/cache@v1
- name: Install dependencies
run: julia --project=${{ matrix.pkg.dir}}/docs/ -e '
using Pkg;
Pkg.Registry.update();
if "${{ matrix.pkg.name}}" == "DifferentiationInterface";
Pkg.develop(PackageSpec(path="./DifferentiationInterface"));
else;
Pkg.develop([PackageSpec(path="./DifferentiationInterface"), PackageSpec(path="${{ matrix.pkg.dir}}")]);
end;
Pkg.instantiate();'
- name: Build and deploy
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} # If authenticating with GitHub Actions token
DOCUMENTER_KEY: ${{ secrets.DOCUMENTER_KEY }} # If authenticating with SSH deploy key
run: julia --project=${{ matrix.pkg.dir}}/docs/ ${{ matrix.pkg.dir}}/docs/make.jl