Fork 0
mirror of https://code.forgejo.org/actions/setup-forgejo.git synced 2024-07-17 22:17:12 +02:00
Create a Forgejo instance and a runner
Go to file
2024-07-05 17:39:17 +00:00
.forgejo cascade: end-to-end usage of setup-forgejo moved to another workflow 2024-03-21 06:19:03 +01:00
testdata add nested test for action.yml binary support 2023-12-17 23:32:55 +01:00
utils automatically build from source if the version is @branch 2023-10-14 23:22:19 +02: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 upgrade the default runner to 3.5.0 2024-07-02 20:58:19 +02:00
forgejo-binary-app.ini forgejo app.ini ENABLE_PUSH_CREATE_ORG = true 2024-02-06 18:09:02 +01:00
forgejo-binary.sh do not display confusing error message if logs do not exist 2024-02-08 10:55:50 +01:00
forgejo-curl.sh cascading-pr update 2023-11-03 23:12:32 +00:00
forgejo-dependencies.sh apt-get update before installing 2023-12-29 16:46:31 +01:00
forgejo-lib.sh forgejo-runner: use the installed binary to display the version 2023-12-21 15:07:14 +01:00
forgejo-runner.sh avoid confusing message about non error during teardown 2023-12-20 22:24:23 +01:00
forgejo-test-helper.sh do not override the DOT variable from forgejo-curl.sh 2023-12-20 22:24:48 +01:00
forgejo.sh ensure all files are created in a designated directory 2023-12-17 22:24:51 +01: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 upgrade the default runner to 3.5.0 2024-07-02 20:58:19 +02: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 upgrade the default runner to 3.5.0 2024-07-02 20:58:19 +02:00


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


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.


parameter description required default
image Container image false codeberg.org/forgejo/forgejo
image-version Container image version false 1.20
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 v3.5.0
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


parameter description
url URL of the Forgejo instance
host-port Host and port of the Forgejo instance, e.g
token Administrator application token with all scopes
runner-logs Filename of the Forgejo runner logs
runner-file Path to the runner file


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


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