Create a Forgejo instance and a runner
Find a file
Renovate Bot 979261d5ab
Update https://data.forgejo.org/actions/forgejo-release action to v2.11.2 (#893)
Reviewed-on: https://code.forgejo.org/actions/setup-forgejo/pulls/893
Reviewed-by: Michael Kriese <michael.kriese@gmx.de>
Co-authored-by: Renovate Bot <bot@kriese.eu>
Co-committed-by: Renovate Bot <bot@kriese.eu>
2026-03-01 07:21:53 +00:00
.forgejo Update https://data.forgejo.org/actions/forgejo-release action to v2.11.2 (#893) 2026-03-01 07:21:53 +00:00
testdata Update data.forgejo.org/oci/alpine Docker tag to v3.23 (#863) 2026-01-27 03:04:38 +00:00
utils automatically build from source if the version is @branch 2023-10-14 23:22:19 +02:00
.editorconfig chore(cleanup): shfmt and .editorconfig applied to all scripts 2025-01-28 21:39:30 +01:00
.gitignore bootstrap 2023-03-24 15:59:04 +01:00
.gitmodules remove lxc-helpers as a submodule 2023-05-21 22:58:27 +02:00
action.yml Update dependency forgejo/runner to v12.7.1 (#908) 2026-02-28 15:14:32 +00:00
forgejo-binary-app.ini forgejo app.ini ENABLE_PUSH_CREATE_ORG = true 2024-02-06 18:09:02 +01:00
forgejo-binary.sh chore(renovate): normalize versions as a preliminary step (#317) 2025-02-27 18:08:35 +00:00
forgejo-curl.sh cascading-pr update 2023-11-03 23:12:32 +00:00
forgejo-dependencies.sh chore(cleanup): shfmt and .editorconfig applied to all scripts 2025-01-28 21:39:30 +01:00
forgejo-lib.sh chore(renovate): normalize versions as a preliminary step (#317) 2025-02-27 18:08:35 +00:00
forgejo-runner.sh fix: use user home for act cache (#842) 2026-02-18 08:00:03 +00:00
forgejo-test-helper.sh fix!: s/FORGEJO_TOKEN/FORGEJO_TEST_TOKEN/ (#461) 2025-07-07 06:34:32 +00:00
forgejo.sh chore(renovate): normalize versions as a preliminary step (#317) 2025-02-27 18:08:35 +00:00
LICENSE LICENSE is MIT 2023-04-01 11:08:06 +02:00
lxc-helpers-lib.sh upgrade lxc-helpers 2023-12-04 18:06:06 +01:00
lxc-helpers.sh upgrade lxc-helpers 2023-12-04 18:06:06 +01:00
README.md docs: fix docs (#890) 2026-02-17 22:46:17 +00:00
renovate.json Migrate renovate config (#367) 2025-05-05 05:56:41 +00:00
runner-config.yaml IPv6 tests 2023-12-04 18:06:06 +01:00
RUNNER_REPOSITORY automatically build from source if the version is @branch 2023-10-14 23:22:19 +02:00
RUNNER_VERSION Update dependency forgejo/runner to v12.7.1 (#908) 2026-02-28 15:14:32 +00:00

setup-forgejo

  • v1: only supports running Forgejo from container images
  • v2: only supports running Forgejo from binaries

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 script is logged in the instance and ready to be used with web or api endpoints.

It can only be used in a job with a runs-on label that designates a Forgejo runner that provides a LXC container.

Inputs

name description required default
image

Container image

false code.forgejo.org/forgejo/forgejo
image-version

Container image version

false 7.0
binary

URL to a Forgejo binary

false ""
user

Administrator user name

false root
password

Administrator password

false admin1234
runner

Runner repository

false https://code.forgejo.org/forgejo/runner
runner-version

Runner version. If it starts with @ (for instance @featurebranch), the runner will be built from source using the specified branch.

false v12.6.4
container

Name of the container running the Forgejo instance

false forgejo
lxc-ip-prefix

Class C IP prefix used by LXC

false 10.0.23
install-only

Only install Forgejo and the Forgejo runner, do not launch them

false false

Outputs

name description
url

URL of the Forgejo instance

host-port

Host and port of the Forgejo instance, e.g 172.0.17.2:3000

token

Administrator application token with all scopes

runner-logs

Filename of the Forgejo runner logs

runner-file

Path to the runner file

Example

name: Setup Forgejo
on: [push]
jobs:
  setup-forgejo:
    runs-on: lxc
    steps:
      - uses: actions/checkout@v4
      - id: forgejo
        uses: actions/setup-forgejo@v1
        with:
          image-version: 7.0
      - run: |
          curl ${{ steps.forgejo.outputs.url }}/api/forgejo/v1/version | grep 7.0

Documentation

Update the README from the action file with https://github.com/npalm/action-docs action-docs --update-readme