Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Support various array types in extensions #767

Open
wants to merge 190 commits into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
190 commits
Select commit Hold shift + click to select a range
ad1fab9
[KrylovSolvers] inner constructors -> outer constructors
amontoison Sep 7, 2022
7c5e233
Add a reference to BiCG paper
amontoison Sep 7, 2022
3cc80c6
Update src/bilq.jl
amontoison Sep 7, 2022
69e7c1d
[documentation] Add a section about preconditioners
amontoison Aug 19, 2022
cce31e6
Add more details about preconditioned LS and LN problems
amontoison Aug 19, 2022
58a28db
[documentation] Add more details about preconditioners
amontoison Aug 22, 2022
08c0e1e
Final version of preconditioners.md
amontoison Aug 24, 2022
016d6c6
Fix tests with CGNE
amontoison Sep 2, 2022
5d1a87f
Apply suggestions from @dpo
amontoison Sep 6, 2022
5d54847
Update test_solvers.jl
amontoison Sep 6, 2022
c967453
Update preconditioners.md
amontoison Sep 6, 2022
55cbe4e
fix \tfrac in preconditioners.jl
amontoison Sep 6, 2022
dd42770
Update docs/src/preconditioners.md
amontoison Sep 7, 2022
645e094
A^T -> A^H
amontoison Sep 7, 2022
330304a
[documentation] Use Aᴴ instead of Aᵀ
amontoison Sep 6, 2022
604c960
[test] Use Aᴴ instead of Aᵀ
amontoison Sep 6, 2022
73e95a7
[code] Use Aᴴ instead of Aᵀ
amontoison Sep 7, 2022
fc8677b
Test Krylov macros
amontoison Sep 9, 2022
e7cd9b8
Use buildkite to test the GPU support
amontoison Sep 9, 2022
fc8bb59
Update workflows
amontoison Sep 10, 2022
26c4856
Update CommentPR.yml
amontoison Sep 10, 2022
b19c74b
[documentation] update gpu.md
amontoison Sep 13, 2022
3c67dfb
[documentation] Test the code of GPU backends with buildkite
amontoison Sep 13, 2022
a97909a
Fix few typos
amontoison Sep 13, 2022
b5c2ea9
Apply suggestions from code review
amontoison Sep 13, 2022
bcbc6aa
[GPU] Remove random tests
amontoison Sep 13, 2022
db3520f
Add more examples with the preconditioners
amontoison Sep 15, 2022
6208825
Update docs/src/preconditioners.md
amontoison Sep 15, 2022
66e1fd1
Release 0.8.4
amontoison Sep 15, 2022
794483b
[documentation] update callbacks.md
amontoison Sep 12, 2022
b0d2079
Update docs/src/callbacks.md
amontoison Sep 16, 2022
212a266
Update callbacks.md
amontoison Sep 21, 2022
611b3c2
Add vector_to_matrix function
amontoison Sep 23, 2022
a01a78d
Update buildkite pipeline
amontoison Sep 23, 2022
4af9334
Update api.md
amontoison Sep 23, 2022
2fe7964
An implementation of FGMRES
amontoison Sep 21, 2022
6fa3132
Add a test with a variable preconditioner
amontoison Sep 21, 2022
bd31594
Apply suggestions from code review
amontoison Sep 26, 2022
45d5a0f
Add fgmres in docs/src/factorization-free.md
amontoison Sep 26, 2022
837f7c9
Update src/fgmres.jl
amontoison Sep 26, 2022
e2a6737
Update multiple docstrings and comments
amontoison Sep 26, 2022
a351162
Reduce the storage required by DIOM and DQGMRES
amontoison Sep 26, 2022
29cf54b
Update test_solvers.jl
amontoison Sep 26, 2022
facd67d
Add a comment about complex matrices in gpu.md
amontoison Sep 26, 2022
460087a
Fix a typo in gpu.md
amontoison Sep 26, 2022
fd1f1ba
Remove allocations in roots_quadratic
amontoison Sep 26, 2022
fb509d6
Test allocations of roots_quadratic for Julia >= 1.8
amontoison Sep 26, 2022
1a582cd
Improve roots_quadratic
amontoison Sep 27, 2022
c45a492
Move callback_utils.jl file
amontoison Sep 28, 2022
100792f
Update tips.md
amontoison Sep 28, 2022
426557d
Add six Krylov processes
amontoison Sep 28, 2022
ed8cd99
Add FGMRES in processes.md
amontoison Sep 28, 2022
be01a41
add discussion in readme
tmigot Sep 29, 2022
50273a7
add discussion in index
tmigot Sep 29, 2022
ce6704f
Apply suggestions from code review
tmigot Sep 29, 2022
7dcc254
Update README.md
amontoison Sep 29, 2022
226c507
Add GPU support for to_boundary function
amontoison Sep 29, 2022
3fcb8ee
Add the workflow Invalidations.yml
amontoison Oct 5, 2022
8441c4d
Use Aqua.jl in the tests
amontoison Oct 5, 2022
a8eb8bb
Add the support of CuSparseMatrixCOO in gpu.md
amontoison Oct 5, 2022
25f8524
add imput and output arguments in all docstrings
amontoison Oct 3, 2022
95d36a5
Use semicolon
amontoison Oct 4, 2022
bf37121
Add the size of each linear system in the docstring
amontoison Oct 4, 2022
ff0da24
Update the dimension of A
amontoison Oct 6, 2022
01b570e
Add m and n in all Krylov solvers
amontoison Oct 7, 2022
ffc9329
[KrylovSolvers] Improve GPU support
amontoison Oct 7, 2022
c7902ed
Update gpu.jl
amontoison Oct 7, 2022
c88e3e2
[GPU] Update the error message
amontoison Oct 10, 2022
4416fa1
Create a Aqua workflow
amontoison Oct 11, 2022
1072e5b
Fix Aqua workflow
amontoison Oct 11, 2022
de4b630
Fix again the Aqua workflow
amontoison Oct 11, 2022
38bfc22
Better display of Krylov solvers
amontoison Oct 7, 2022
8a2978b
Update test_solvers.jl
amontoison Oct 7, 2022
ea73605
Fix the sizeof of a vector of vector
amontoison Oct 11, 2022
bc93b54
Update src/krylov_solvers.jl
amontoison Oct 11, 2022
3a11347
Improve allocation tests
amontoison Oct 11, 2022
ae3fc2d
Update tolerances for LSMR and SYMMLQ in allocation tests
amontoison Oct 11, 2022
b6f6ae9
Add optional argument(s) in the docstrings
amontoison Oct 11, 2022
a42db8e
[LNLQ] Use utolx and utoly instead of etolx and etoly
amontoison Oct 12, 2022
3c580a2
[documentation] Replace symmetric by Hermitian
amontoison Oct 14, 2022
b01ffa0
Support a view of a matrix as a right-hand side b
amontoison Oct 17, 2022
04c8f69
Update test/gpu/nvidia.jl
amontoison Oct 17, 2022
354cf4b
Update test/test_utils.jl
amontoison Oct 19, 2022
80e7586
Improve Krylov processes
amontoison Oct 19, 2022
b9b2bb0
Change the category of USYMLQ and USYMQR
amontoison Oct 17, 2022
417c719
Update src/usymqr.jl
amontoison Oct 28, 2022
9aea974
Fix a typo in processes.md
amontoison Nov 1, 2022
e970d25
Add a comment about the non-Hermitian Lanczos process
amontoison Nov 3, 2022
5312552
[documentation] Add a section storage requirements
amontoison Nov 5, 2022
60e5b65
Fix two typos
amontoison Nov 5, 2022
aa8b6ac
Update docs/src/storage.md
amontoison Nov 5, 2022
823f734
Update docs/src/storage.md
amontoison Nov 5, 2022
135d47f
Use the same tolerance for all allocation tests
amontoison Nov 6, 2022
630faac
Update the show function for Krylov solvers
amontoison Nov 10, 2022
f152a01
Add a keyword argument iostream for all Krylov methods
amontoison Nov 8, 2022
3dcf774
Hack with kstdout
amontoison Nov 9, 2022
76e1390
Use kstdout in all docstrings
amontoison Nov 9, 2022
e232f97
Use Core.stdout
amontoison Nov 9, 2022
c98beb4
Fix verbose mode in CG-LANCZOS-SHIFT
amontoison Nov 11, 2022
66a3a18
[documentation] Remove the subsection restarted methods
amontoison Nov 14, 2022
9d4f7b6
Update docs/make.jl
amontoison Nov 15, 2022
bce6092
[documentation] Add notes about relations between processes
amontoison Nov 15, 2022
f15aedc
Add a table to summarize the most relevant processes for each linear …
amontoison Nov 15, 2022
45d762c
Add a second reference for the Golub-Kahan process
amontoison Nov 19, 2022
211f38a
Add another note for the Golub-Kahan process
amontoison Nov 19, 2022
2ff1489
Apply suggestions from code review
amontoison Nov 20, 2022
18691a8
Add the list of keyword arguments for all Krylov methods
amontoison Nov 13, 2022
1e31e3f
Regroup diagonal scaling factors of TriCG, TriMR and GPMR
amontoison Nov 13, 2022
3721949
Replace ctol by Artol in MINRES-QLP
amontoison Nov 14, 2022
676fbda
window=5 by default in SYMMLQ
amontoison Nov 14, 2022
1dbe269
Remove duplicate tolerances in MINRES
amontoison Nov 14, 2022
4dfbe15
Add rtol in LSLQ
amontoison Nov 14, 2022
92bc8d6
Add documentation for all Keyword arguments
amontoison Nov 14, 2022
243425e
Update MINRES and MINRES-QLP
amontoison Nov 25, 2022
566f23e
Check all docstrings
amontoison Nov 25, 2022
338dbc4
Release 0.9.0
amontoison Nov 25, 2022
3758132
Update CI for aarch64 Mac -- Apple M1
amontoison Nov 29, 2022
e965ad5
Add an example with BasicLU.jl in preconditioners.md
amontoison Nov 30, 2022
12b4ab6
Use Cirrus to test Krylov.jl with Apple M1
amontoison Dec 21, 2022
5291caf
Switch Metal.jl CI to the juliaecosystem pipeline.
maleadt Dec 23, 2022
0e3de13
Use JET to fix bugs and type instabilities
amontoison Jan 2, 2023
962811e
Add new tests for GPUs
amontoison Jan 22, 2023
9e4b6da
Use sparse_laplacian instead of symmetric_indefinite for GPU tests
amontoison Jan 22, 2023
03ee0a8
[buildkite] Use Julia 1.9 for AMD GPUs
amontoison Jan 22, 2023
baa45b3
Use symmetric_definite instead of sparse_laplacian for GPU tests
amontoison Jan 22, 2023
67dbbee
Debug minres_qlp with verbose mode
amontoison Jan 22, 2023
18ef839
Relax the tolerance of the stopping condition based on the backward e…
amontoison Jan 22, 2023
391da90
Use master branch of AMDGPU.jl
amontoison Jan 22, 2023
c214873
Allow more generic storage type S
amontoison Feb 9, 2023
b83491c
Small modification for FillArrays package
amontoison Feb 9, 2023
414e0b2
[buildkite] Remove the build with AMDGPU.jl]
amontoison Feb 13, 2023
c8c0836
Check that the KrylovSolvers are compatible with the dimension of the…
amontoison Feb 11, 2023
7fa1b06
Add tests for compatibility between KrylovSolvers and the dimension o…
amontoison Feb 13, 2023
49bdbec
Update solver tests for Julia 1.6
amontoison Feb 13, 2023
407cbae
[documentation] Update the page related to the GPU support
amontoison Feb 16, 2023
f2410b8
Update docs/src/gpu.md
amontoison Feb 20, 2023
1cf4063
Update LICENSE.md
amontoison Mar 6, 2023
fe3047d
[documentation] Update the GPU section
amontoison Mar 6, 2023
886200f
[documentation] Use ILU(0) and IC(0) in the comments
amontoison Mar 6, 2023
aaf83e5
Update the reference of the GPMR paper
amontoison Mar 10, 2023
fcbf189
Fix the documentation for CUDA.jl 4.1
amontoison Mar 24, 2023
f903b84
Update .buildkite again
amontoison Mar 24, 2023
b6ed790
Update docs/src/gpu.md
amontoison Mar 24, 2023
d98a927
Fix some typos
goggle Mar 29, 2023
c1be270
Add a threshold for codecov
amontoison Mar 24, 2023
19542fa
[documentation] Use CUDA.zeros instead of similar
amontoison Mar 31, 2023
73a4152
Add a reference for CR
amontoison May 1, 2023
07e2833
Test Krylov.jl with CUDA 12.1.1
amontoison May 8, 2023
5945a5d
[documentation] Remove the comment about unstable CUDA toolkits
amontoison May 8, 2023
baa4941
Improve test_mp.jl
amontoison May 8, 2023
cec1dd8
Add a keyword argument timemax for all Krylov methods
amontoison May 8, 2023
fdddcaf
Update Breakage.yml for LinearSolve.jl
amontoison May 10, 2023
b87e4d6
Use metaprogramming to define the kwargs of all Krylov methods
amontoison May 9, 2023
2f53b6e
Add an extract_parameters function
amontoison May 10, 2023
de52dfe
[documentation] Update reference.md
amontoison May 10, 2023
88629bc
Update the kwargs of the in-place methods
amontoison May 10, 2023
0ff88a2
Update codecov.yml
amontoison May 10, 2023
b901092
Display a warning when the operator and the right-hand side don't hav…
amontoison May 10, 2023
c29e8f6
Fix a typo in CG-LANCZOS
amontoison May 10, 2023
bbbad21
Combine the allocation of the KrylovSolver with the warm-start
amontoison May 10, 2023
b22e980
Fix my sed command
amontoison May 10, 2023
ba849b4
Test the verbose mode
amontoison May 11, 2023
5f7ea0f
Take into account the time to allocate the KrylovSolver
amontoison May 10, 2023
b62f606
Update the verbose mode to display a timer
amontoison May 12, 2023
55f577c
Add a field timer in the statistics
amontoison May 12, 2023
bd3e691
Update test_stats.jl
amontoison May 12, 2023
e2eb7c4
Update the KrylovSolvers to support the timer in KrylovStats
amontoison May 12, 2023
fa0da9c
Update stats.timer in all Krylov methods
amontoison May 12, 2023
d6f3e51
Release 0.9.1
amontoison May 12, 2023
6d9def6
Improve the reliability of solver.stats.timer
amontoison May 15, 2023
0de0116
[CI] Remove the build with Linux ARM
amontoison Jun 28, 2023
1a1c59f
Optimize the generic function solve!
amontoison Jun 28, 2023
dca42a5
Add methods solve! with optional arguments
amontoison Jun 28, 2023
b3804c9
Add tests for in-place methods with keyword arguments
amontoison Jun 28, 2023
f780b59
Fix tests with Apple GPUs
amontoison Jul 16, 2023
69e446f
Use metaprogramming to reduce the code
amontoison Jul 16, 2023
896e4ed
Update .builkite/pipeline.yml
amontoison Jul 16, 2023
4182209
Keep tests with AMDGPU.jl commented
amontoison Jul 16, 2023
88f518b
Release 0.9.2
amontoison Jul 16, 2023
750093c
Support StaticArrays in an extension
gdalle Aug 8, 2023
e4171ca
Actually test extensions
gdalle Aug 8, 2023
9e12b8c
Requires is not a stale dependency
gdalle Aug 8, 2023
dfeeb8d
Fix Aqua
gdalle Aug 8, 2023
26b4169
Fix Project.toml order
gdalle Aug 8, 2023
3a8b304
Fix Requires
gdalle Aug 8, 2023
10d073a
Refix Requires
gdalle Aug 8, 2023
b70656f
Move FillArrays support to extension
gdalle Aug 8, 2023
5554ed0
Normal Aqua tests
gdalle Aug 8, 2023
decd6b9
Add ComponentArrays support
gdalle Aug 9, 2023
c1745f4
Fix docstrings
gdalle Aug 9, 2023
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
71 changes: 71 additions & 0 deletions .buildkite/pipeline.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,71 @@
steps:
- label: "Nvidia GPUs -- CUDA.jl"
plugins:
- JuliaCI/julia#v1:
version: 1.9
agents:
queue: "juliagpu"
cuda: "*"
command: |
julia --color=yes --project -e '
using Pkg
Pkg.add("CUDA")
Pkg.add("LinearOperators")
Pkg.instantiate()
using CUDA
# CUDA.set_runtime_version!(v"11.8")'

julia --color=yes --project -e '
include("test/gpu/nvidia.jl")'
timeout_in_minutes: 30

# - label: "AMD GPUs -- AMDGPU.jl"
# plugins:
# - JuliaCI/julia#v1:
# version: 1.9
# agents:
# queue: "juliagpu"
# rocm: "*"
# rocmgpu: "gfx1031"
# env:
# JULIA_AMDGPU_CORE_MUST_LOAD: "1"
# JULIA_AMDGPU_HIP_MUST_LOAD: "1"
# JULIA_AMDGPU_DISABLE_ARTIFACTS: "1"
# command: |
# julia --color=yes --project -e '
# using Pkg
# Pkg.add("AMDGPU")
# Pkg.instantiate()
# include("test/gpu/amd.jl")'
# timeout_in_minutes: 30

- label: "Intel GPUs -- oneAPI.jl"
plugins:
- JuliaCI/julia#v1:
version: 1.9
agents:
queue: "juliagpu"
intel: "*"
command: |
julia --color=yes --project -e '
using Pkg
Pkg.add("oneAPI")
Pkg.instantiate()
include("test/gpu/intel.jl")'
timeout_in_minutes: 30

- label: "Apple M1 GPUs -- Metal.jl"
plugins:
- JuliaCI/julia#v1:
version: 1.9
agents:
queue: "juliaecosystem"
os: "macos"
arch: "aarch64"
command: |
julia --color=yes --project -e '
using Pkg
Pkg.add("Metal")
Pkg.instantiate()
include("test/gpu/metal.jl")'
timeout_in_minutes: 30
43 changes: 32 additions & 11 deletions .cirrus.yml
Original file line number Diff line number Diff line change
@@ -1,15 +1,36 @@
freebsd_instance:
image: freebsd-13-0-release-amd64
task:
name: FreeBSD
env:
matrix:
- JULIA_VERSION: 1.6
- JULIA_VERSION: 1
- JULIA_VERSION: nightly
allow_failures: $JULIA_VERSION == 'nightly'
install_script:
- sh -c "$(fetch https://raw.githubusercontent.com/ararslan/CirrusCI.jl/master/bin/install.sh -o -)"
matrix:
- name: FreeBSD
freebsd_instance:
image_family: freebsd-13-1
env:
matrix:
- JULIA_VERSION: 1.6
- JULIA_VERSION: 1
- name: musl Linux
container:
image: alpine:3.14
env:
- JULIA_VERSION: 1
- name: MacOS M1
macos_instance:
image: ghcr.io/cirruslabs/macos-monterey-base:latest
env:
- JULIA_VERSION: 1
install_script: |
URL="https://raw.githubusercontent.com/ararslan/CirrusCI.jl/master/bin/install.sh"
set -x
if [ "$(uname -s)" = "Linux" ] && command -v apt; then
apt update
apt install -y curl
fi
if command -v curl; then
sh -c "$(curl ${URL})"
elif command -v wget; then
sh -c "$(wget ${URL} -q -O-)"
elif command -v fetch; then
sh -c "$(fetch ${URL} -o -)"
fi
build_script:
- cirrusjl build
test_script:
Expand Down
11 changes: 11 additions & 0 deletions .github/codecov.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
# Drops on the order 0.01% are typical even when no change occurs
# Having the threshold set a little higher (0.5%) than that makes it
# a little more tolerant to fluctuations
coverage:
status:
project:
default:
threshold: 0.5%
patch:
default:
threshold: 0.5%
17 changes: 17 additions & 0 deletions .github/workflows/Aqua.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
name: Aqua
on:
push:
branches:
- main
pull_request:
types: [opened, synchronize, reopened]
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: julia-actions/setup-julia@latest
with:
version: '1'
- name: Aqua.jl
run: julia --color=yes -e 'using Pkg; Pkg.add("Aqua"); Pkg.develop(path="."); using Aqua, Krylov; Aqua.test_all(Krylov)'
15 changes: 8 additions & 7 deletions .github/workflows/Breakage.yml
Original file line number Diff line number Diff line change
Expand Up @@ -19,19 +19,20 @@ jobs:
"JuliaSmoothOptimizers/JSOSolvers.jl",
"JuliaSmoothOptimizers/LLSModels.jl",
"JuliaSmoothOptimizers/Percival.jl",
"JuliaSmoothOptimizers/RipQP.jl"
"JuliaSmoothOptimizers/RipQP.jl",
"SciML/LinearSolve.jl"
]
pkgversion: [latest, stable]

steps:
- uses: actions/checkout@v2
- uses: actions/checkout@v3

# Install Julia
- uses: julia-actions/setup-julia@v1
with:
version: '1'
arch: x64
- uses: actions/cache@v1
- uses: actions/cache@v3
env:
cache-name: cache-artifacts
with:
Expand Down Expand Up @@ -85,7 +86,7 @@ jobs:
end;
end'

- uses: actions/upload-artifact@v2
- uses: actions/upload-artifact@v3
with:
name: pr
path: pr/
Expand All @@ -94,9 +95,9 @@ jobs:
needs: break
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: actions/checkout@v3

- uses: actions/download-artifact@v2
- uses: actions/download-artifact@v3
with:
name: pr
path: pr/
Expand Down Expand Up @@ -127,7 +128,7 @@ jobs:
fi
done >> MSG

- uses: actions/upload-artifact@v2
- uses: actions/upload-artifact@v3
with:
name: pr
path: pr/
31 changes: 0 additions & 31 deletions .github/workflows/CI_M1.yml

This file was deleted.

36 changes: 28 additions & 8 deletions .github/workflows/CommentPR.yml
Original file line number Diff line number Diff line change
Expand Up @@ -39,16 +39,36 @@ jobs:
- run: unzip pr.zip

- name: 'Comment on PR'
uses: actions/github-script@v3
uses: actions/github-script@v6
with:
github-token: ${{ secrets.GITHUB_TOKEN }}
script: |
var fs = require('fs');
var issue_number = Number(fs.readFileSync('./NR'));
var msg = fs.readFileSync('./MSG', 'utf8');
await github.issues.createComment({
var fs = require('fs')
var issue_number = Number(fs.readFileSync('./NR'))
var msg = fs.readFileSync('./MSG', 'utf8')

// Get the existing comments.
const {data: comments} = await github.rest.issues.listComments({
owner: context.repo.owner,
repo: context.repo.repo,
issue_number: issue_number,
body: msg
});
issue_number: issue_number
})

// Find any comment already made by the bot.
const botComment = comments.find(comment => comment.user.id === 41898282)

if (botComment) {
await github.rest.issues.updateComment({
owner: context.repo.owner,
repo: context.repo.repo,
comment_id: botComment.id,
body: msg
})
} else {
await github.rest.issues.createComment({
owner: context.repo.owner,
repo: context.repo.repo,
issue_number: issue_number,
body: msg
})
}
41 changes: 33 additions & 8 deletions .github/workflows/CompatHelper.yml
Original file line number Diff line number Diff line change
@@ -1,19 +1,44 @@
name: CompatHelper

on:
schedule:
- cron: '00 00 * * *'

- cron: 0 0 * * *
workflow_dispatch:
permissions:
contents: write
pull-requests: write
jobs:
CompatHelper:
runs-on: ubuntu-latest
steps:
- uses: julia-actions/setup-julia@latest
- name: Check if Julia is already available in the PATH
id: julia_in_path
run: which julia
continue-on-error: true
- name: Install Julia, but only if it is not already available in the PATH
uses: julia-actions/setup-julia@v1
with:
version: '1'
- name: CompatHelper
run: julia -e 'using Pkg; Pkg.add("CompatHelper")'
- name: CompatHelper.main()
arch: ${{ runner.arch }}
if: steps.julia_in_path.outcome != 'success'
- name: "Add the General registry via Git"
run: |
import Pkg
ENV["JULIA_PKG_SERVER"] = ""
Pkg.Registry.add("General")
shell: julia --color=yes {0}
- name: "Install CompatHelper"
run: |
import Pkg
name = "CompatHelper"
uuid = "aa819f21-2bde-4658-8897-bab36330d9b7"
version = "3"
Pkg.add(; name, uuid, version)
shell: julia --color=yes {0}
- name: "Run CompatHelper"
run: |
import CompatHelper
CompatHelper.main()
shell: julia --color=yes {0}
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: julia -e 'using CompatHelper; CompatHelper.main()'
COMPATHELPER_PRIV: ${{ secrets.DOCUMENTER_KEY }}
4 changes: 2 additions & 2 deletions .github/workflows/Documentation.yml
Original file line number Diff line number Diff line change
Expand Up @@ -10,12 +10,12 @@ jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: actions/checkout@v3
- uses: julia-actions/setup-julia@latest
with:
version: '1'
- name: Install dependencies
run: julia --project=docs -e 'using Pkg; Pkg.develop(PackageSpec(path=pwd())); Pkg.instantiate()'
run: julia --project=docs --color=yes -e 'using Pkg; Pkg.develop(PackageSpec(path=pwd())); Pkg.instantiate()'
- name: Build and deploy
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
Expand Down
43 changes: 43 additions & 0 deletions .github/workflows/Invalidations.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
name: Invalidations
# Uses SnoopCompile to evaluate number of invalidations caused by `using` the package
# using https://github.com/julia-actions/julia-invalidations
# Based on https://github.com/julia-actions/julia-invalidations

on:
pull_request:

concurrency:
# Skip intermediate builds: always.
# Cancel intermediate builds: always.
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true

jobs:
evaluate:
# Only run on PRs to the default branch.
# In the PR trigger above branches can be specified only explicitly whereas this check should work for master, main, or any other default branch
if: github.base_ref == github.event.repository.default_branch
runs-on: ubuntu-latest
steps:
- uses: julia-actions/setup-julia@v1
with:
version: '1'
- uses: actions/checkout@v3
- uses: julia-actions/julia-buildpkg@v1
- uses: julia-actions/julia-invalidations@v1
id: invs_pr

- uses: actions/checkout@v3
with:
ref: ${{ github.event.repository.default_branch }}
- uses: julia-actions/julia-buildpkg@v1
- uses: julia-actions/julia-invalidations@v1
id: invs_default

- name: Report invalidation counts
run: |
echo "Invalidations on default branch: ${{ steps.invs_default.outputs.total }} (${{ steps.invs_default.outputs.deps }} via deps)" >> $GITHUB_STEP_SUMMARY
echo "This branch: ${{ steps.invs_pr.outputs.total }} (${{ steps.invs_pr.outputs.deps }} via deps)" >> $GITHUB_STEP_SUMMARY
- name: Check if the PR does increase number of invalidations
if: steps.invs_pr.outputs.total > steps.invs_default.outputs.total
run: exit 1
Loading