Collection of GitHub reusable workflows for a variety of languages
I have not yet implemented sane defaults and error detection. I've also made a hard coded dependency on git-cliff to produce the release notes. The next phase will be to get all this corrected and/or made optional, somehow.
- main This is the one you should copy to your Lazarus repository, and customise, because it calls the ones bellow
- build This one takes care of compiling the app itself and uploading the compiled binaries as an artefact. It's called remotely from the main one above
- test This one takes care of compiling the test app and running it. It's called remotely from the main one above
- release This one takes care of downloading the artefacts and then creating a release with archived binaries. It's called remotely from the main one above
Example:
{
"app-name": "helloworld",
"lpi-path": "lazarus/src",
"bin-path": "lazarus/bin",
"build-mode": "Release",
"lazarus-packages": "",
"matrix": {
"os": [
"ubuntu-latest",
"windows-latest",
"macos-latest"
],
"include":[
{
"os": "ubuntu-latest",
"triplet": "x86_64-linux"
},
{
"os": "windows-latest",
"triplet": "x86_64-win64"
},
{
"os": "macos-latest",
"triplet": "x86_64-darwin"
}
],
"lazarus-versions": [
"stable",
"2.0.12"
]
}
}
The application name.
This field is used to find the .lpi
file one the lpi-path
folder and also the binary on bin-path
.
The path where the .lpi
file resides.
Example value: "src"
The path where the compiled binary can be found.
Example value: "bin"
The name of one of the build modes you've defined on your .lpi
file.
Example values: "Default", "Release", "Debug"
A JSON
representation of the matrix to allow parallel compiling for various platforms and Lazarus versions.
NOTE: Needs more explanation