-
-
Notifications
You must be signed in to change notification settings - Fork 45
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
1 changed file
with
109 additions
and
0 deletions.
There are no files selected for viewing
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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,109 @@ | ||
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 | ||
RAKUDO_MAX_THREADS: 4 | ||
ZEF_FETCH_DEGREE: 1 | ||
ZEF_FETCH_TIMEOUT: 0 | ||
ZEF_EXTRACT_TIMEOUT: 0 | ||
|
||
steps: | ||
- uses: actions/checkout@v3 | ||
- uses: Raku/setup-raku@v1 | ||
with: | ||
raku-version: ${{ matrix.raku-version }} | ||
|
||
- name: Workaround for flakey GitHub Actions precompilation errors on Windows | ||
if: runner.os == 'Windows' | ||
run: echo "RAKUDO_MAX_THREADS=4" >> $env:GITHUB_ENV | ||
|
||
- 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' | ||
|
||
# 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 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/[email protected] | ||
- 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 |