mirror of
https://github.com/FlightControl-Master/MOOSE.git
synced 2025-08-15 10:47:21 +00:00
51 lines
2.0 KiB
Markdown
51 lines
2.0 KiB
Markdown
---
|
|
parent: Build system
|
|
grand_parent: Developer
|
|
nav_order: 4
|
|
---
|
|
|
|
# Run builds locally
|
|
|
|
When creating or enhancing [GitHub Actions] builds it is a problem to test the
|
|
build. After each change you need to commit and check the build result. This
|
|
leads to a lot of unnecessary commits.
|
|
|
|
Therefor it is needed to run the build locally on the developer PC. The tool
|
|
which enabled this is [act]. It uses [Docker] to create a build runner and
|
|
executes the [GitHub Actions] build with it.
|
|
|
|
[act] can by installed by [Chocolatey] by this single command: `choco install act-cli`.
|
|
|
|
We use the `Medium Docker Image` for our MOOSE builds to work properly.
|
|
Unfortunately the docker images used by [act] are not as up to date as the
|
|
images used by [GitHub Actions]. So we needed to add a build step with
|
|
`sudo apt-get -qq update`.
|
|
|
|
The build jobs needs `TOKENS` to run properly. So you have to create a PAT
|
|
([Personal Access Token]). A classic Token with read rights is enough to run
|
|
the build, as long as don't want to push the results.
|
|
|
|
{: .important }
|
|
> The push step is only executed if the variable `FORCE_PUSH` with value `true` is set.
|
|
> - This is only needed if the push step itself must be change and tested!
|
|
> - Add parameter `--var FORCE_PUSH=true` to your [act] commando.
|
|
> - You and your PAT needs write access to the target repos, too.
|
|
|
|
Save your PAT in the file `.secrets` in the main folder
|
|
of the MOOSE repository. This file is added to `.gitignore`, so it is not
|
|
recognized by git for commits. Add the following line to `.secrets`:
|
|
|
|
```
|
|
BOT_TOKEN=<your PAT>
|
|
```
|
|
|
|
To run the builds use these commands:
|
|
- `act push -W .github/workflows/build-includes.yml`
|
|
- `act push -W .github/workflows/build-docs.yml`
|
|
|
|
[GitHub Actions]: https://docs.github.com/en/actions
|
|
[act]: https://github.com/nektos/act
|
|
[Docker]: https://www.docker.com/
|
|
[Chocolatey]: https://community.chocolatey.org/
|
|
[Personal Access Token]: https://docs.github.com/en/authentication/keeping-your-account-and-data-secure/managing-your-personal-access-tokens
|