Skip to content

zero-overhead/App-Workflows-Github

Repository files navigation

last push Linux Status MacOS Status Windows Status
scheduled check Linux Status MacOS Status Windows 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.

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.

screenshot of dispatch menu

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

AUTHOR

rcmlz [email protected]

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.