2023-03-25 19:16:39 -04:00
# setup-forgejo
2023-12-20 17:26:18 -05:00
* v1: only supports running Forgejo from container images
* v2: only supports running Forgejo from binaries
2023-03-25 19:16:39 -04:00
<!-- action - docs - description -->
## Description
2023-03-29 09:23:09 -04:00
Setup Forgejo and a runner.
2023-12-17 16:22:55 -05:00
If `binary` is specified, Forgejo downloads the binary from the URL and uses
it to start an instance.
Otherwise, `image` and `image-version` must be specified and Forgejo
runs from the corresponding container image using docker.
2023-03-29 09:23:09 -04:00
The forgejo-test-helper.sh script is available to help test and debug actions.
2023-03-29 18:27:54 -04:00
`forgejo=http://root:admin1234@${{ steps.forgejo.outputs.host-port }}`
2023-03-29 09:23:09 -04:00
2023-03-29 18:27:54 -04:00
* `forgejo-test-helper.sh push_self_action $forgejo root myaction vTest`
2023-09-24 10:54:52 -04:00
Creates the repository `$forgejo/root/myaction` and populates it with the
2023-03-29 09:23:09 -04:00
content of the repository under test, except for the `.forgejo` directory
2023-09-24 10:54:52 -04:00
(it would otherwise create an infinite loop). The tag `vTest` is
2023-03-29 09:23:09 -04:00
set to the SHA under test.
2023-03-30 10:52:28 -04:00
* `forgejo-test-helper.sh run_workflow testrepo $forgejo root testrepo myaction`
2023-09-24 10:54:52 -04:00
Creates the repository `$forgejo/root/testrepo` and populates it with the
2023-03-29 09:23:09 -04:00
content of the `testrepo` directory. All occurrences of `SELF` in
`testrepo/.forgejo/workflows/*.yml` are replaced with `$forgejo/root/myaction` .
2023-03-30 10:52:28 -04:00
* `forgejo-test-helper.sh push testrepo $forgejo root testrepo`
2023-09-24 10:54:52 -04:00
Creates the repository `$forgejo/root/testrepo` and populates it with the
2023-10-07 17:27:24 -04:00
content of the `testrepo` directory.
2023-03-29 09:23:09 -04:00
2023-03-29 18:27:54 -04:00
The combination of `push_self_action` and `run_workflow` allows to
run Forgejo Actions workflows from `testrepo` that use the action
under test (`myaction`) to verify it works as intended.
2023-09-24 10:54:52 -04:00
The [forgejo-curl.sh ](https://code.forgejo.org/forgejo/forgejo-curl#forgejo-curlsh )
script is logged in the instance and ready to be used with web or api endpoints.
2023-03-25 19:16:39 -04:00
<!-- action - docs - description -->
2023-03-25 19:34:51 -04:00
2023-11-09 10:24:39 -05:00
It can only be used in a job with a `runs-on` label that designates a Forgejo runner
that [provides a LXC container ](https://forgejo.org/docs/next/user/actions/#jobsjob_idruns-on ).
2023-03-25 19:16:39 -04:00
<!-- action - docs - inputs -->
## Inputs
| parameter | description | required | default |
| --- | --- | --- | --- |
| image | Container image | `false` | codeberg.org/forgejo/forgejo |
2023-07-27 14:45:06 -04:00
| image-version | Container image version | `false` | 1.20 |
2023-12-17 16:22:55 -05:00
| binary | URL to a Forgejo binary | `false` | |
2023-03-25 19:16:39 -04:00
| user | Administrator user name | `false` | root |
| password | Administrator password | `false` | admin1234 |
2023-11-08 11:26:50 -05:00
| runner | Runner repository | `false` | https://code.forgejo.org/forgejo/runner |
2024-03-21 11:46:45 -04:00
| runner-version | Runner version. If it starts with @ (for instance @featurebranch ), the runner will be built from source using the specified branch. | `false` | v3.4.0 |
2023-04-01 08:51:42 -04:00
| container | Name of the container running the Forgejo instance | `false` | forgejo |
2023-03-29 18:27:54 -04:00
| lxc-ip-prefix | Class C IP prefix used by LXC | `false` | 10.0.23 |
2023-10-28 17:47:47 -04:00
| install-only | Only install Forgejo and the Forgejo runner, do not launch them | `false` | false |
2023-03-25 19:16:39 -04:00
<!-- action - docs - inputs -->
<!-- action - docs - outputs -->
## Outputs
| parameter | description |
| --- | --- |
2023-03-27 11:36:59 -04:00
| url | URL of the Forgejo instance |
| host-port | Host and port of the Forgejo instance, e.g 172.0.17.2:3000 |
2023-11-08 11:26:50 -05:00
| token | Administrator application token with all scopes |
2023-03-27 11:36:59 -04:00
| runner-logs | Filename of the Forgejo runner logs |
2023-07-03 17:28:39 -04:00
| runner-file | Path to the runner file |
2023-03-25 19:16:39 -04:00
<!-- action - docs - outputs -->
## Example
```
name: Setup Forgejo
on: [push]
jobs:
setup-forgejo:
2023-11-09 10:24:39 -05:00
runs-on: lxc
2023-03-25 19:16:39 -04:00
steps:
2023-11-09 10:24:39 -05:00
- uses: actions/checkout@v4
2023-03-25 19:16:39 -04:00
- id: forgejo
2023-03-30 10:11:04 -04:00
uses: actions/setup-forgejo@v1
2023-03-25 19:16:39 -04:00
with:
2023-07-27 14:45:06 -04:00
image-version: 1.20
2023-03-25 19:16:39 -04:00
- run: |
2023-07-27 14:45:06 -04:00
curl ${{ steps.forgejo.outputs.url }}/api/forgejo/v1/version | grep 1.20
2023-03-25 19:16:39 -04:00
```
2023-03-27 10:43:26 -04:00
2023-10-29 12:04:04 -04:00
## Documentation
2023-09-26 15:53:30 -04:00
2023-10-07 16:07:36 -04:00
Update the README from the action file with https://github.com/npalm/action-docs `action-docs --update-readme`