setup-forgejo/action.yml
Renovate Bot f9636465e6
Update dependency forgejo/runner to v6.2.1 (#309)
This PR contains the following updates:

| Package | Update | Change |
|---|---|---|
| [forgejo/runner](https://code.forgejo.org/forgejo/runner) | patch | `v6.2.0` -> `v6.2.1` |

---

### Release Notes

<details>
<summary>forgejo/runner (forgejo/runner)</summary>

### [`v6.2.1`](https://code.forgejo.org/forgejo/runner/releases/tag/v6.2.1)

[Compare Source](https://code.forgejo.org/forgejo/runner/compare/v6.2.0...v6.2.1)

See https://code.forgejo.org/forgejo/runner/src/branch/main/RELEASE-NOTES.md#6-2-1

</details>

---

### Configuration

📅 **Schedule**: Branch creation - "* 0-3 * * *" (UTC), Automerge - "* 0-3 * * *" (UTC).

🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update again.

---

 - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box

---

This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOS4xMzYuMSIsInVwZGF0ZWRJblZlciI6IjM5LjEzNi4xIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119-->

Reviewed-on: https://code.forgejo.org/actions/setup-forgejo/pulls/309
Reviewed-by: Michael Kriese <michael.kriese@gmx.de>
Co-authored-by: Renovate Bot <bot@kriese.eu>
Co-committed-by: Renovate Bot <bot@kriese.eu>
2025-01-30 11:59:44 +00:00

114 lines
4.7 KiB
YAML

# SPDX-License-Identifier: MIT
name: 'Setup Forgejo'
author: 'Forgejo authors'
description: |
Setup Forgejo and a runner.
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.
The forgejo-test-helper.sh script is available to help test and debug actions.
`forgejo=http://root:admin1234@${{ steps.forgejo.outputs.host-port }}`
* `forgejo-test-helper.sh push_self_action $forgejo root myaction vTest`
Creates the repository `$forgejo/root/myaction` and populates it with the
content of the repository under test, except for the `.forgejo` directory
(it would otherwise create an infinite loop). The tag `vTest` is
set to the SHA under test.
* `forgejo-test-helper.sh run_workflow testrepo $forgejo root testrepo myaction`
Creates the repository `$forgejo/root/testrepo` and populates it with the
content of the `testrepo` directory. All occurrences of `SELF` in
`testrepo/.forgejo/workflows/*.yml` are replaced with `$forgejo/root/myaction`.
* `forgejo-test-helper.sh push testrepo $forgejo root testrepo`
Creates the repository `$forgejo/root/testrepo` and populates it with the
content of the `testrepo` directory.
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.
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.
inputs:
image:
description: 'Container image'
default: 'codeberg.org/forgejo/forgejo'
image-version:
description: 'Container image version'
default: '1.20'
binary:
description: 'URL to a Forgejo binary'
user:
description: 'Administrator user name'
default: 'root'
password:
description: 'Administrator password'
default: 'admin1234'
runner:
description: 'Runner repository'
default: 'https://code.forgejo.org/forgejo/runner'
runner-version:
description: 'Runner version. If it starts with @ (for instance @featurebranch), the runner will be built from source using the specified branch.'
default: 'v6.2.1'
container:
description: 'Name of the container running the Forgejo instance'
default: 'forgejo'
lxc-ip-prefix:
description: 'Class C IP prefix used by LXC'
default: '10.0.23'
install-only:
description: 'Only install Forgejo and the Forgejo runner, do not launch them'
default: 'false'
outputs:
url:
description: "URL of the Forgejo instance"
value: "${{ steps.forgejo.outputs.url }}"
host-port:
description: "Host and port of the Forgejo instance, e.g 172.0.17.2:3000"
value: "${{ steps.forgejo.outputs.host-port }}"
token:
description: "Administrator application token with all scopes"
value: "${{ steps.forgejo.outputs.token }}"
runner-logs:
description: "Filename of the Forgejo runner logs"
value: "${{ steps.forgejo.outputs.runner-logs }}"
runner-file:
description: "Path to the runner file"
value: "${{ steps.forgejo.outputs.runner-file }}"
runs:
using: "composite"
steps:
- run: echo "${{ github.action_path }}" >> $GITHUB_PATH
shell: bash
- uses: actions/checkout@v4
- id: forgejo
run: |
cd $(mktemp -d)
cp ${{ github.action_path }}/runner-config.yaml .
LXC_IP_PREFIX=${{ inputs.lxc-ip-prefix }} forgejo-dependencies.sh
if ${{ inputs.install-only }} ; then
echo "install-only is true, do not run Forgejo"
exit 0
fi
if test "${{ inputs.binary }}"; then
forgejo-binary.sh ensure_user forgejo
chown forgejo $(pwd)
su -c "DIR=$(pwd) forgejo-binary.sh setup ${{ inputs.user }} ${{ inputs.password }} ${{ inputs.binary }}" forgejo
su -c "DIR=$(pwd) forgejo-runner.sh setup ${{ inputs.runner }} ${{ inputs.runner-version }} $(cat forgejo-url)" forgejo
else
export CONTAINER=${{ inputs.container }}
forgejo.sh setup ${{ inputs.user }} "${{ inputs.password }}" ${{ inputs.image }} ${{ inputs.image-version }}
forgejo-runner.sh setup ${{ inputs.runner }} ${{ inputs.runner-version }} $(cat forgejo-url)
fi
echo url="$(cat forgejo-url)" >> $GITHUB_OUTPUT
echo host-port="$(cat forgejo-ip):3000" >> $GITHUB_OUTPUT
echo token=$(cat forgejo-token) >> $GITHUB_OUTPUT
echo runner-logs="$(pwd)/forgejo-runner.log" >> $GITHUB_OUTPUT
echo runner-file="$(pwd)/.runner" >> $GITHUB_OUTPUT
shell: bash