Skip to content

Preload plugins

Preload plugins #61

Workflow file for this run

name: test
on: [ push, pull_request ]
jobs:
raku:
strategy:
fail-fast: false
matrix:
os: [ macos-latest, windows-latest, ubuntu-latest ]
raku-version: [ latest ]
runs-on: ${{ matrix.os }}
env:
RAKUDO_LOG_PRECOMP: 1
RAKUDO_MODULE_DEBUG: 1
RAKUDO_PRECOMPILATION_PROGRESS: 1
RAKUDO_OPT: --ll-exception
# Workaround for path length errors during precompilation of longer repo names
TMPDIR: /tmp
steps:
- uses: actions/checkout@v4
- uses: Raku/setup-raku@v1
with:
raku-version: ${{ matrix.raku-version }}
- name: Ensure TMPDIR exists
run: mkdir -p ${{ env.TMPDIR }}
- name: Remove non-core modules included in this github action
run: raku -e 'my $site = CompUnit::RepositoryRegistry.repository-for-name(q|site|); $site.uninstall($_) for $site.installed'
- name: Force precompilation order
run: |
raku -e 'say "Zef::Distribution::DependencySpecification"';
raku -I. -e 'use Zef::Distribution::DependencySpecification;'
raku -e 'say "Zef::Service::Shell::DistributionBuilder"';
raku -I. -e 'use Zef::Service::Shell::DistributionBuilder;'
raku -e 'say "Zef::Service::InstallRakuDistribution"';
raku -I. -e 'use Zef::Service::InstallRakuDistribution;'
raku -e 'say "Zef::Service::Shell::LegacyBuild"';
raku -I. -e 'use Zef::Service::Shell::LegacyBuild;'
raku -e 'say "Zef::Repository::LocalCache"';
raku -I. -e 'use Zef::Repository::LocalCache;'
raku -e 'say "Zef::Repository::Ecosystems"';
raku -I. -e 'use Zef::Repository::Ecosystems;'
raku -e 'say "Zef::Service::Shell::unzip"';
raku -I. -e 'use Zef::Service::Shell::unzip;'
raku -e 'say "Zef::Service::FileReporter"';
raku -I. -e 'use Zef::Service::FileReporter;'
raku -e 'say "Zef::Service::Shell::wget"';
raku -I. -e 'use Zef::Service::Shell::wget;'
raku -e 'say "Zef::Service::Shell::Test"';
raku -I. -e 'use Zef::Service::Shell::Test;'
raku -e 'say "Zef::Service::Shell::curl"';
raku -I. -e 'use Zef::Service::Shell::curl;'
raku -e 'say "Zef::Service::Shell::git"';
raku -I. -e 'use Zef::Service::Shell::git;'
raku -e 'say "Zef::Service::Shell::tar"';
raku -I. -e 'use Zef::Service::Shell::tar;'
raku -e 'say "Zef::Distribution::Local"';
raku -I. -e 'use Zef::Distribution::Local;'
raku -e 'say "Zef::Utils::SystemQuery"';
raku -I. -e 'use Zef::Utils::SystemQuery;'
raku -e 'say "Zef::Service::FetchPath"';
raku -I. -e 'use Zef::Service::FetchPath;'
raku -e 'say "Zef::Utils::FileSystem"';
raku -I. -e 'use Zef::Utils::FileSystem;'
raku -e 'say "Zef::Distribution"';
raku -I. -e 'use Zef::Distribution;'
raku -e 'say "Zef::Service::TAP"';
raku -I. -e 'use Zef::Service::TAP;'
raku -e 'say "Zef::Utils::URI"';
raku -I. -e 'use Zef::Utils::URI;'
raku -e 'say "Zef::Repository"';
raku -I. -e 'use Zef::Repository;'
raku -e 'say "Zef::Identity"';
raku -I. -e 'use Zef::Identity;'
raku -e 'say "Zef::Extract"';
raku -I. -e 'use Zef::Extract;'
raku -e 'say "Zef::Install"';
raku -I. -e 'use Zef::Install;'
raku -e 'say "Zef::Report"';
raku -I. -e 'use Zef::Report;'
raku -e 'say "Zef::Client"';
raku -I. -e 'use Zef::Client;'
raku -e 'say "Zef::Config"';
raku -I. -e 'use Zef::Config;'
raku -e 'say "Zef::Fetch"';
raku -I. -e 'use Zef::Fetch;'
raku -e 'say "Zef::Build"';
raku -I. -e 'use Zef::Build;'
raku -e 'say "Zef::Test"';
raku -I. -e 'use Zef::Test;'
raku -e 'say "Zef::CLI"';
raku -I. -e 'use Zef::CLI;'
raku -e 'say "Zef"';
raku -I. -e 'use Zef;'
if: runner.os == 'Windows'
# run xt/ tests
- name: Run xt/ tests - repository.rakutest
run: raku --ll-exception -I. xt/repository.rakutest
- name: Run xt/ tests - install.rakutest
run: raku --ll-exception -I. xt/install.rakutest
if: runner.os != 'Windows'
# run integration tests pre-install
- name: Test (and show for debugging purposes) --version
run: raku -I. bin/zef --version
- name: Run relative local path test + install
run: raku -I. bin/zef --debug install .
- name: Test uninstall
run: raku -I. bin/zef uninstall zef
- name: Run absolute local path test + install
run: raku -I. bin/zef install ${{ github.workspace }}
# run integration tests post-install
- name: Test 'update'
run: zef update --debug
- name: Test --version
run: zef --version
- name: Test --help
run: zef --help
- name: Test 'locate' with short-name
run: zef locate Zef::CLI
- name: Test 'locate' with path name
run: zef locate lib/Zef/CLI.rakumod
- name: Test 'browse'
run: zef browse zef bugtracker --/open
- name: Test 'info'
run: zef info zef
- name: Test 'search'
run: zef --debug search Base64
- name: Test 'rdepends'
run: zef --debug rdepends Base64
- name: Test 'depends'
run: zef --debug depends Cro::SSL
- name: Test 'fetch'
run: zef --debug fetch Base64
- name: Test installing from what 'fetch' put in ::LocalCache
run: zef --debug --/fez --/cpan --/p6c --/rea install Base64
- name: Test 'list'
run: zef --debug --max=10 list
- name: Test 'list --installed'
run: zef --debug --installed list
- name: Test reinstallation via 'install --force-install'
run: zef --debug --force-install install Base64
- name: Test installing .tar.gz
run: zef --debug install https://github.com/ugexe/Raku-PathTools/archive/0434191c56e0f3254ab1d756d90f9191577de5a0.tar.gz
- name: Test 'upgrade' on previously installed PathTools .tar.gz
run: zef --debug upgrade PathTools
- name: Test installing .zip
run: zef --debug install https://github.com/ugexe/Raku-Text--Table--Simple/archive/v0.0.3.zip
- name: Test remote git repo + tag
run: zef --debug install https://github.com/ugexe/Raku-Text--Table--Simple.git@v0.0.4
- name: Test self contained installation
run: |
zef install Distribution::Common --/test
zef install Distribution::Common::Remote -to=inst#foo --contained --/test
zef uninstall Distribution::Common
raku -I inst#foo -M Distribution::Common::Remote::Github -e ""
- name: Test 'nuke' on config paths
run: zef --/confirm nuke TempDir StoreDir
- name: Test single repository update ('cached' should be 0 after previous nuke)
run: zef update cached --debug