NAME
App::Workflows::Github - a CI/CD workflow collection for Raku Module developers.
SYNOPSIS
zef install App::Workflows::Github
cd your-module-directory
create-workflows-4-github
DESCRIPTION
App::Workflows::Github is collecting Github workflows for testing your Module on Linux, MacOS and Windows.
Scheduled workflows only run automatically on github if the .yml files are pushed to the default branch - usually 'main'.
Microsoft Windows
If you are on Windows and can not use WSL: consider switching off the maximum-path-length-limitation in case of failed tests during installation.
New-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\FileSystem" -Name "LongPathsEnabled" -Value 1 -PropertyType DWORD -Force
You might get away with temporarily setting TEMP to a short path.
set TEMP=D:\T
mkdir -Force %TEMP%
set TMP=%TEMP%
set ZEF_CONFIG_TEMPDIR=%TEMP%
Installation
Linux/MacOS/Windows install module command:
zef install App::Workflows::Github
Finally execute the following commands:
cd your-module-directory
create-workflows-4-github
This will create or overwrite the following files:
your-module-directory/.github/workflows/runner.yml
your-module-directory/.github/workflows/dispatch.yml
your-module-directory/.github/workflows/Linux.yml
your-module-directory/.github/workflows/MacOS.yml
your-module-directory/.github/workflows/Windows.yml
your-module-directory/run-tests.raku
Then do the usual three git steps to push the changes to github.
git add .github/workflows/
git add run-tests.raku
git commit -m"adding github workflows"
git push
Workflow Dispatch
To dispatch a workflow run using gh CLI use e.g.
cd your-module-directory
echo '{"verbosity":"debug", "os":"windows", "ad_hoc_pre_command":"pwd", "ad_hoc_post_command":"ls -alsh", "os_version":"2019", "raku_version":"2023.02", "run_prove6":"true", "install_module":"true", "run_tests_script":"true", "skip_deps_tests":"false"}' > run_parameters.json
cat run_parameters.json | gh workflow run 'dispatch' --ref branch-to-run-on --json
For 'os' you can choose any of 'ubuntu|macos|windows'. For 'os_version' check supported-runners-and-hardware-resources. For available 'raku_version' check here.
Open https://github.com/your-name/your-module/actions to check the workflow results or dispatch a run via browser.
AUTHOR
rcmlz rcmlz@github.com
COPYRIGHT AND LICENSE
Copyright 2023 rcmlz
This library is free software; you can redistribute it and/or modify it under the Artistic License 2.0.