Skip to content

WIP: Add support for HyperHessian backend #2437

WIP: Add support for HyperHessian backend

WIP: Add support for HyperHessian backend #2437

Workflow file for this run

name: Test
on:
push:
branches:
- main
tags: ['*']
pull_request:
types: [opened, reopened, synchronize, ready_for_review]
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-DI-Core:
# name: ${{ matrix.version }} - DI Core (${{ matrix.group }})
# runs-on: ubuntu-latest
# if: ${{ !contains(github.event.pull_request.labels.*.name, 'skipci') }}
# timeout-minutes: 120
# permissions: # needed to allow julia-actions/cache to proactively delete old caches that it has created
# actions: write
# contents: read
# strategy:
# fail-fast: false # TODO: toggle
# matrix:
# version:
# - '1.10'
# - '1.11'
# - '1.12'
# group:
# - Internals
# - SimpleFiniteDiff
# - ZeroBackends
# skip_lts:
# - ${{ github.event.pull_request.draft }}
# skip_pre:
# - ${{ github.event.pull_request.draft }}
# exclude:
# - skip_lts: true
# version: '1.10'
# - skip_pre: true
# version: '1.12'
# env:
# JULIA_DI_TEST_TYPE: 'Core'
# JULIA_DI_TEST_GROUP: ${{ matrix.group }}
# JULIA_DI_PR_DRAFT: ${{ github.event.pull_request.draft }}
# steps:
# - uses: actions/checkout@v6
# - uses: julia-actions/setup-julia@v2
# with:
# version: ${{ matrix.version }}
# arch: x64
# - uses: julia-actions/cache@v2
# - name: Install dependencies & run tests
# run: julia --color=yes -e '
# using Pkg;
# Pkg.activate("./DifferentiationInterface/test");
# if VERSION < v"1.11";
# Pkg.rm("DifferentiationInterfaceTest");
# Pkg.resolve();
# else;
# Pkg.develop(; path="./DifferentiationInterfaceTest");
# end;
# Pkg.activate("./DifferentiationInterface");
# test_kwargs = (; allow_reresolve=false, coverage=true);
# if ENV["JULIA_DI_PR_DRAFT"] == "true";
# Pkg.test("DifferentiationInterface"; julia_args=["-O1"], test_kwargs...);
# else;
# Pkg.test("DifferentiationInterface"; test_kwargs...);
# end;'
# - uses: julia-actions/julia-processcoverage@v1
# with:
# directories: ./DifferentiationInterface/src,./DifferentiationInterface/ext,./DifferentiationInterface/test
# - uses: codecov/codecov-action@v5
# with:
# files: lcov.info
# flags: DI
# token: ${{ secrets.CODECOV_TOKEN }}
# fail_ci_if_error: false
test-DI-Backend:
name: ${{ matrix.version }} - DI Back (${{ matrix.group }})
runs-on: ubuntu-latest
if: ${{ !contains(github.event.pull_request.labels.*.name, 'skipci') }}
timeout-minutes: 120
permissions: # needed to allow julia-actions/cache to proactively delete old caches that it has created
actions: write
contents: read
strategy:
fail-fast: false # TODO: toggle
matrix:
version:
- '1.10'
- '1.11'
- '1.12'
group:
# - ChainRules
# - DifferentiateWith
# # - Diffractor
# - Enzyme
# - FastDifferentiation
# - FiniteDiff
# - FiniteDifferences
# - ForwardDiff
# - GTPSA
- HyperHessians
# - Mooncake
# - PolyesterForwardDiff
# - ReverseDiff
# - SparsityDetector
# - Symbolics
# - Tracker
# - Zygote
skip_lts:
- ${{ github.event.pull_request.draft }}
skip_pre:
- ${{ github.event.pull_request.draft }}
exclude:
- skip_lts: true
version: '1.10'
- skip_pre: true
version: '1.12'
- version: '1.11'
group: ChainRules
- version: '1.12'
group: Enzyme
- version: '1.12'
group: DifferentiateWith
env:
JULIA_DI_TEST_TYPE: 'Back'
JULIA_DI_TEST_GROUP: ${{ matrix.group }}
JULIA_DI_PR_DRAFT: ${{ github.event.pull_request.draft }}
steps:
- uses: actions/checkout@v6
- uses: julia-actions/setup-julia@v2
with:
version: ${{ matrix.version }}
arch: x64
- uses: julia-actions/cache@v2
- name: Install dependencies & run tests
run: julia --code-coverage=user --color=yes -e '
using Pkg;
group = ENV["JULIA_DI_TEST_GROUP"];
Pkg.activate("./DifferentiationInterface/test/Back/$group");
Pkg.develop([PackageSpec(path="./DifferentiationInterface"), PackageSpec(path="./DifferentiationInterfaceTest")]);
include("./DifferentiationInterface/test/Back/run_backend.jl");'
- uses: julia-actions/julia-processcoverage@v1
with:
directories: ./DifferentiationInterface/src,./DifferentiationInterface/ext,./DifferentiationInterface/test
- uses: codecov/codecov-action@v5
with:
files: lcov.info
flags: DI
token: ${{ secrets.CODECOV_TOKEN }}
fail_ci_if_error: false
# test-DIT:
# name: ${{ matrix.version }} - DIT (${{ matrix.group }})
# runs-on: ubuntu-latest
# if: ${{ !contains(github.event.pull_request.labels.*.name, 'skipci') }}
# 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 # TODO: toggle
# matrix:
# version:
# - '1.10'
# - '1.11'
# - '1.12'
# group:
# - Formalities
# - Zero
# - Standard
# - Weird
# skip_lts:
# - ${{ github.event.pull_request.draft }}
# skip_pre:
# - ${{ github.event.pull_request.draft }}
# exclude:
# - skip_lts: true
# version: '1.10'
# - skip_pre: true
# version: '1.12'
# env:
# JULIA_DIT_TEST_GROUP: ${{ matrix.group }}
# JULIA_DI_PR_DRAFT: ${{ github.event.pull_request.draft }}
# steps:
# - uses: actions/checkout@v6
# - uses: julia-actions/setup-julia@v2
# with:
# version: ${{ matrix.version }}
# arch: x64
# - uses: julia-actions/cache@v2
# - name: Install dependencies & run tests
# run: julia --project=./DifferentiationInterfaceTest --color=yes -e '
# using Pkg;
# Pkg.Registry.update();
# Pkg.develop(path="./DifferentiationInterface");
# if ENV["JULIA_DI_PR_DRAFT"] == "true";
# Pkg.test("DifferentiationInterfaceTest"; allow_reresolve=false, coverage=true, julia_args=["-O1"]);
# else;
# Pkg.test("DifferentiationInterfaceTest"; allow_reresolve=false, coverage=true);
# end;'
# - uses: julia-actions/julia-processcoverage@v1
# with:
# directories: ./DifferentiationInterfaceTest/src,./DifferentiationInterfaceTest/ext,./DifferentiationInterfaceTest/test
# - uses: codecov/codecov-action@v5
# with:
# files: lcov.info
# flags: DIT
# token: ${{ secrets.CODECOV_TOKEN }}
# fail_ci_if_error: false