variables:
  CI_JULIA_CACHE_DIR: ${CI_PROJECT_DIR}/julia_pkg
  JULIA_DEPOT_PATH: ${CI_JULIA_CACHE_DIR}
cache:
  key:
    files:
      - Project.toml
      - docs/Project.toml
    prefix: ${CI_JOB_NAME}
  paths:
    - ${CI_JULIA_CACHE_DIR}
.script:
  script:
    - |
      julia --project=@. -e '
        using Pkg
        Pkg.build()
        Pkg.test(coverage=true)'
.coverage:
  coverage: /Test coverage (\d+\.\d+%)/
  after_script:
    - |
      julia -e '
        using Pkg
        Pkg.add("Coverage")
        using Coverage
        c, t = get_summary(process_folder())
        using Printf
        @printf "Test coverage %.2f%%\n" 100c / t'
# Julia 1.10:
#   image: julia:1.10
#   extends:
#     - .script
#     - .coverage
Julia 1.11:
  image: julia:1.11
  extends:
    - .script
    - .coverage
pages:
  image: julia:1.11
  stage: deploy
  script:
    - |
      julia --project=docs -e '
        using Pkg
        @info "Pkg status before dev" Pkg.status() pwd()
        Pkg.develop(PackageSpec(path=pwd()))
        Pkg.instantiate()
        @info "Pkg status after dev" Pkg.status()
        include("docs/make.jl")'
    - mkdir -p public
    - mv docs/build public/dev
    - ls docs/src -R
  artifacts:
    paths:
      - public
  only:
    - main
CompatHelper:
  image: julia:1.11 # Set to the Julia version you want to use
  stage: test # You can place this in any stage that makes sense for your setup
  only:
    - schedules
  before_script:
    - apt-get update -qq && apt-get install -y git
    - |
      julia --color=yes -e "
        import Pkg;
        name = \"CompatHelper\";
        uuid = \"aa819f21-2bde-4658-8897-bab36330d9b7\";
        version = \"3\";
        Pkg.add(; name, uuid, version)"
  script:
    - |
      julia --color=yes -e '
        import CompatHelper;
        config = CompatHelper.GitLabCI(;
            api_hostname="https://gitlab.cern.ch/api/v4",
            clone_hostname="gitlab.cern.ch",
        )
        CompatHelper.main(ENV, config)'
