mirror of
https://github.com/julia-actions/julia-runtest.git
synced 2026-02-12 11:06:54 +08:00
* allow control of bounds-check command option * tryfix * Update action.yml Co-authored-by: Sascha Mann <git@mail.saschamann.eu> * Update action.yml Co-authored-by: Sascha Mann <git@mail.saschamann.eu> * tryfix * alternative bash if else approach * another approach * use julia_args approach * add julia_args to kwargs func * fix * move julia_args to before return * guard against v1.0 * add warning * Update kwargs.jl Co-authored-by: Sascha Mann <git@mail.saschamann.eu> * handle the default state and improve error message * Update kwargs.jl Co-authored-by: Chris Foster <chris42f@gmail.com> * Update kwargs.jl Co-authored-by: Sascha Mann <git@mail.saschamann.eu> Co-authored-by: Chris Foster <chris42f@gmail.com>
42 lines
1.8 KiB
Julia
42 lines
1.8 KiB
Julia
module Kwargs
|
|
|
|
import Pkg
|
|
|
|
include(joinpath(@__DIR__, "autodetect-dependabot.jl"))
|
|
|
|
function kwargs(; coverage::Bool,
|
|
force_latest_compatible_version::Union{Bool, Symbol},
|
|
julia_args::AbstractVector{<:AbstractString}=String[])
|
|
if !(force_latest_compatible_version isa Bool) && (force_latest_compatible_version != :auto)
|
|
throw(ArgumentError("Invalid value for force_latest_compatible_version: $(force_latest_compatible_version)"))
|
|
end
|
|
|
|
kwargs_dict = Dict{Symbol, Any}()
|
|
kwargs_dict[:coverage] = coverage
|
|
|
|
if VERSION >= v"1.6.0"
|
|
kwargs_dict[:julia_args] = julia_args
|
|
elseif julia_args == ["--check-bounds=yes"]
|
|
# silently don't add this default julia_args value as < 1.6 doesn't support julia_args, but it's the default state
|
|
else
|
|
println("::warning::The Pkg.test bounds checking behavior cannot be changed before Julia 1.6. VERSION=$VERSION, julia_args=$julia_args")
|
|
end
|
|
|
|
if VERSION < v"1.7.0-" || !hasmethod(Pkg.Operations.test, Tuple{Pkg.Types.Context, Vector{Pkg.Types.PackageSpec}}, (:force_latest_compatible_version,))
|
|
(force_latest_compatible_version != :auto) && @warn("The `force_latest_compatible_version` option requires at least Julia 1.7", VERSION, force_latest_compatible_version)
|
|
return kwargs_dict
|
|
end
|
|
|
|
if force_latest_compatible_version == :auto
|
|
is_dependabot_job = AutodetectDependabot.is_dependabot_job()
|
|
is_dependabot_job && @info("This is a Dependabot/CompatHelper job, so `force_latest_compatible_version` has been set to `true`")
|
|
kwargs_dict[:force_latest_compatible_version] = is_dependabot_job
|
|
else
|
|
kwargs_dict[:force_latest_compatible_version] = force_latest_compatible_version::Bool
|
|
end
|
|
|
|
return kwargs_dict
|
|
end
|
|
|
|
end # module
|