Add github action #38
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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: | |
# Workaround for path length errors during precompilation of longer repo names | |
TMPDIR: /tmp | |
steps: | |
- uses: actions/checkout@v3 | |
- uses: Raku/setup-raku@v1 | |
with: | |
raku-version: ${{ matrix.raku-version }} | |
- name: Ensure TMPDIR exists | |
run: mkdir -p ${{ env.TMPDIR }} | |
# Note that we use `raku -I. bin/zef nuke ...` instead of `zef nuke ...` because deleting | |
# the module installation directories on windows can cause an error due to one of those files | |
# being the currently-loaded zef itself. | |
# This used to be the very last CI test, but because we need to delete the already-installed | |
# verison of zef that comes with this github action it has been moved to be one of the first. | |
- name: Remove non-core modules included in this github action + Test 'nuke' on repo names | |
run: raku -e 'my $site = CompUnit::RepositoryRegistry.repository-for-name(q|site|); $site.uninstall($_) for $site.installed' | |
# test explicitly via `prove t/*` and `raku t/foo.rakutest && raku t/bar.rakutest` | |
# both should work, since all our CI envs have prove | |
- name: Run unit tests with '--prove' | |
run: raku -I. bin/zef --debug --/tap-harness --prove --/raku-test test . | |
- name: Run unit tests with '--raku-test' | |
run: raku -I. bin/zef --debug --/tap-harness --/prove --raku-test test . | |
# 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 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/[email protected] | |
- name: Test self contained installation + uninstall | |
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 |