diff --git a/action.yml b/action.yml index e0eaea1..17b8ff5 100644 --- a/action.yml +++ b/action.yml @@ -36,22 +36,6 @@ inputs: runs: using: 'composite' steps: - # Occasionally, there are rather large delays (> a few hours) - # between the time a package is registered in General and - # propagated to pkg.julialang.org. We can avoid this by manually - # cloning ~/.julia/registries/General/ in Julia 1.5 and later. - # See: - # * https://github.com/JuliaLang/Pkg.jl/issues/2011 - # * https://github.com/JuliaRegistries/General/issues/16777 - # * https://github.com/JuliaPackaging/PkgServer.jl/issues/60 - - run: julia --color=yes "$GITHUB_ACTION_PATH"/add_general_registry.jl - shell: bash - env: - # We set `JULIA_PKG_SERVER` only for this step to enforce - # `Pkg.Registry.add` to use Git. This way, Pkg.jl can send - # the request metadata to pkg.julialang.org when installing - # packages via `Pkg.test`. - JULIA_PKG_SERVER: "" - name: Install dependencies in their own (shared) environment run: | if VERSION > v"1.8pre" @@ -61,6 +45,8 @@ runs: end shell: julia --color=yes {0} if: inputs.annotate == 'true' + env: + JULIA_PKG_SERVER_REGISTRY_PREFERENCE: "${{ env.JULIA_PKG_SERVER_REGISTRY_PREFERENCE == '' && 'eager' || env.JULIA_PKG_SERVER_REGISTRY_PREFERENCE }}" - run: | # The Julia command that will be executed julia_cmd=( julia --color=yes --depwarn=${{ inputs.depwarn }} --inline=${{ inputs.inline }} --project=${{ inputs.project }} -e 'include(joinpath(ENV["GITHUB_ACTION_PATH"], "test_harness.jl"))' ) @@ -78,3 +64,4 @@ runs: COVERAGE: ${{ inputs.coverage }} FORCE_LATEST_COMPATIBLE_VERSION: ${{ inputs.force_latest_compatible_version }} CHECK_BOUNDS: ${{ inputs.check_bounds }} + JULIA_PKG_SERVER_REGISTRY_PREFERENCE: "${{ env.JULIA_PKG_SERVER_REGISTRY_PREFERENCE == '' && 'eager' || env.JULIA_PKG_SERVER_REGISTRY_PREFERENCE }}" diff --git a/add_general_registry.jl b/add_general_registry.jl deleted file mode 100644 index 036a9b2..0000000 --- a/add_general_registry.jl +++ /dev/null @@ -1,49 +0,0 @@ -using Pkg - -function general_registry_location() - general_registry_dir = joinpath(DEPOT_PATH[1], "registries", "General") - registry_toml_file = joinpath(general_registry_dir, "Registry.toml") - return general_registry_dir, registry_toml_file -end - -function general_registry_exists() - general_registry_dir, registry_toml_file = general_registry_location() - if !isdir(general_registry_dir) - return false - elseif !isfile(registry_toml_file) - return false - else - return true - end -end - -function add_general_registry() - @info("Attempting to clone the General registry") - general_registry_dir, registry_toml_file = general_registry_location() - rm(general_registry_dir; force = true, recursive = true) - Pkg.Registry.add("General") - isfile(registry_toml_file) || throw(ErrorException("the Registry.toml file does not exist")) - return nothing -end - -function main(; n = 10, max_delay = 120) - VERSION >= v"1.5-" || return - - if general_registry_exists() - @info("The General registry already exists locally") - return - end - - delays = ExponentialBackOff(; n = n, max_delay = max_delay) - try - retry(add_general_registry; delays = delays)() - @info("Successfully added the General registry") - catch ex - msg = "I was unable to add the General registry. However, the build will continue." - @error(msg, exception=(ex,catch_backtrace())) - end - - return -end - -main()