Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/zero-overhead/app-workflows-github
Ready-to-use workflows for cross-platform Raku module development
https://github.com/zero-overhead/app-workflows-github
actions automation ci-cd continuous-delivery continuous-deployment continuous-integration cross-platform fez linux macos module-workflow modules raku raku-module rakulang windows workflows zef
Last synced: 9 days ago
JSON representation
Ready-to-use workflows for cross-platform Raku module development
- Host: GitHub
- URL: https://github.com/zero-overhead/app-workflows-github
- Owner: zero-overhead
- License: artistic-2.0
- Created: 2023-10-25T10:45:16.000Z (about 1 year ago)
- Default Branch: main
- Last Pushed: 2024-01-11T13:16:09.000Z (10 months ago)
- Last Synced: 2024-10-11T20:41:41.690Z (about 1 month ago)
- Topics: actions, automation, ci-cd, continuous-delivery, continuous-deployment, continuous-integration, cross-platform, fez, linux, macos, module-workflow, modules, raku, raku-module, rakulang, windows, workflows, zef
- Language: Raku
- Homepage: https://raku.land/zef:zero-overhead/App::Workflows::Github
- Size: 160 KB
- Stars: 1
- Watchers: 1
- Forks: 1
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- Changelog: Changes
- License: LICENSE
Awesome Lists containing this project
README
|last push|[![Linux Status](https://github.com/zero-overhead/App-Workflows-Github/actions/workflows/Linux.yml/badge.svg?event=push)](https://github.com/zero-overhead/App-Workflows-Github/actions)|[![MacOS Status](https://github.com/zero-overhead/App-Workflows-Github/actions/workflows/MacOS.yml/badge.svg?event=push)](https://github.com/zero-overhead/App-Workflows-Github/actions)|[![Windows Status](https://github.com/zero-overhead/App-Workflows-Github/actions/workflows/Windows.yml/badge.svg?event=push)](https://github.com/zero-overhead/App-Workflows-Github/actions)|
|---|---|---|---|
|scheduled check|[![Linux Status](https://github.com/zero-overhead/App-Workflows-Github/actions/workflows/Linux.yml/badge.svg?event=schedule)](https://github.com/zero-overhead/App-Workflows-Github/actions)|[![MacOS Status](https://github.com/zero-overhead/App-Workflows-Github/actions/workflows/MacOS.yml/badge.svg?event=schedule)](https://github.com/zero-overhead/App-Workflows-Github/actions)|[![Windows Status](https://github.com/zero-overhead/App-Workflows-Github/actions/workflows/Windows.yml/badge.svg?event=schedule)](https://github.com/zero-overhead/App-Workflows-Github/actions)|NAME
====App::Workflows::Github - a CI/CD workflow collection for Raku Module developers.
SYNOPSIS
========```bash
zef install App::Workflows::Github
cd your-module-directory
create-workflows-4-github
```DESCRIPTION
===========[![last version](https://raku.land/zef:zero-overhead/App::Workflows::Github/badges/version)](https://raku.land/zef:zero-overhead/App::Workflows::Github/badges) [![downloads](https://raku.land/zef:zero-overhead/App::Workflows::Github/badges/downloads)](https://raku.land/zef:zero-overhead/App::Workflows::Github/badges)
App::Workflows::Github is collecting Github workflows for testing your [Module](https://raku.land) 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](https://learn.microsoft.com/en-us/linux/install) and can not use [WSL](https://learn.microsoft.com/en-us/windows/wsl/): consider switching off the [maximum-path-length-limitation](https://learn.microsoft.com/en-us/windows/win32/fileio/maximum-file-path-limitation?tabs=powershell) in case of failed tests during installation.
```PowerShell
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.
```PowerShell
set TEMP=D:\Tmkdir -Force %TEMP%
set TMP=%TEMP%
set ZEF_CONFIG_TEMPDIR=%TEMP%
```Installation
------------Linux/MacOS/Windows install module command:
```bash
zef install App::Workflows::Github
```Finally execute the following commands:
```bash
cd your-module-directory
create-workflows-4-github
```This will create or overwrite the following files:
```bash
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.
```bash
git add .github/workflows/
git add run-tests.rakugit commit -m"adding github workflows"
git push
```Workflow Dispatch
-----------------To [dispatch a workflow run](https://cli.github.com/manual/gh_workflow_run) using [gh](https://cli.github.com/manual/) CLI use e.g.
```bash
cd your-module-directoryecho '{"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](https://docs.github.com/en/actions/using-github-hosted-runners/about-github-hosted-runners/about-github-hosted-runners#supported-runners-and-hardware-resources). For available 'raku_version' check [here](https://www.rakudo.org/downloads/rakudo).
![screenshot of dispatch menu](https://github.com/zero-overhead/App-Workflows-Github/blob/main/resources/dispatch-screenshot.png?raw=true)
Open https://github.com/your-name/your-module/actions to check the workflow results or dispatch a run via browser.
AUTHOR
======rcmlz
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.