Rand Stats

App::Workflows::Github

zef:zero-overhead
last pushLinux StatusMacOS StatusWindows StatusNixOS Status
scheduled checkLinux StatusMacOS StatusWindows StatusNixOS Status

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

last version downloads

App::Workflows::Github is collecting Github workflows for testing your Module on Linux, MacOS and Windows.

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/.github/workflows/NixOS.yml
your-module-directory/run-tests.raku
your-module-directory/shell.nix

Then do the usual three git steps to push the changes to github.

git add .github/workflows/ run-tests.raku shell.nix

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.

screenshot of dispatch menu

Open https://github.com/your-name/your-module/actions to check the workflow results or dispatch a run via browser.

Scheduled workflows only run automatically on github if the .yml files are pushed to the default branch - usually 'main'.

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.