Create a Forgejo instance and a runner
Go to file
2023-07-04 06:16:12 +00:00
.forgejo/workflows nested integration tests 2023-05-29 17:25:48 +02:00
testdata show the full output when the version does not match 2023-07-03 23:14:33 +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 runner to v2.1.0 by default 2023-07-03 23:15:27 +02:00
forgejo-dependencies.sh remove lxc-helpers as a submodule 2023-05-21 22:58:27 +02:00
forgejo-runner.sh upgrade runner to v2.1.0 by default 2023-07-03 23:15:27 +02:00
forgejo-test-helper.sh download Go 1.20.5 not 1.20.4 2023-07-03 23:14:33 +02:00
forgejo.sh version 1.19 is >= 1.19.0-3 2023-04-05 23:27:33 +02:00
LICENSE LICENSE is MIT 2023-04-01 11:08:06 +02:00
lxc-helpers-lib.sh sync lxc-helpers b0766388a2624bc56258053576c7c09dba2e7cf5 2023-05-21 22:54:43 +02:00
lxc-helpers.sh sync lxc-helpers b0766388a2624bc56258053576c7c09dba2e7cf5 2023-05-21 22:54:43 +02:00
README.md update the readme 2023-07-03 23:28:39 +02:00
runner-config.yaml be verbose in debug mode 2023-07-03 23:14:33 +02:00

setup-forgejo

Description

Setup Forgejo and a runner.

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 populate it with the content of the repository under test, except for the .forgejo directory (it would otherwise create an infinite recursion loop). The tag vTest is set to the SHA under test.
  • forgejo-test-helper.sh run_workflow testrepo $forgejo root testrepo myaction Create the repository $forgejo/root/testrepo and populate 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 Create the repository $forgejo/root/testrepo and populate it with the content of the testrepo directory. The SHA of the tip of the repository is in the output, starting with sha=.
  • forgejo-test-helper.sh build_runner $forgejo/forgejo/runner v1.4.1 Builds the forgejo runner from source in ./forgejo-runner/forgejo-runner. export PATH=$(pwd)/forgejo-runner:$PATH will ensure that calling forgejo-runner.sh will use this binary instead of downloading a released version of the runner. If the version is not specified, build from the main branch.

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.

It can only be run on the self-hosted platform, running on a host with LXC installed.

Inputs

parameter description required default
image Container image false codeberg.org/forgejo/forgejo
image-version Container image version false 1.19
user Administrator user name false root
password Administrator password false admin1234
runner Runner git repository false https://code.forgejo.org/forgejo/runner
runner-version Runner version false v2.1.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

Outputs

parameter 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,sudo 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: self-hosted
    steps:
      - uses: actions/checkout@v3
      - id: forgejo
        uses: actions/setup-forgejo@v1
        with:
          image-version: 1.19
      - run: |
          curl ${{ steps.forgejo.outputs.url }}/api/forgejo/v1/version | grep 1.19

Hacking