Add unregistered package to CI

I would like to run CI with an unregistered package, or a package that is registered to an alternative registry via LocalRegistry.jl. To do something similar with Documenter.jl, I added something like this to the yml file:

name: instantiate environment
        run: |
            julia -e '
              using Pkg
              Pkg.add(url="https://xyz")
              Pkg.develop(PackageSpec(path=pwd()))'

The third answer on this thread suggests including the commands above in the CI.yml file. But where do I insert the commands? Here is the CI.yml file I am using:

Summary
name: CI
on:
  push:
    branches:
      - main
    tags: ['*']
  pull_request:
  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:
    name: Julia ${{ matrix.version }} - ${{ matrix.os }} - ${{ matrix.arch }} - ${{ github.event_name }}
    runs-on: ${{ matrix.os }}
    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
      matrix:
        version:
          - '1.11'
          - '1.6'
          - 'pre'
        os:
          - ubuntu-latest
        arch:
          - x64
    steps:
      - uses: actions/checkout@v4
      - uses: julia-actions/setup-julia@v2
        with:
          version: ${{ matrix.version }}
          arch: ${{ matrix.arch }}
      - uses: julia-actions/cache@v2
      - uses: julia-actions/julia-buildpkg@v1
      - uses: julia-actions/julia-runtest@v1

Thanks!

Have you considered adding the package to the sources section of the project?

2 Likes

Thanks. I was not aware of that new feature in 1.11. It worked perfectly.