diff --git a/.forgejo/workflows/integration.yml b/.forgejo/workflows/integration.yml index 5e65f92..8e12447 100644 --- a/.forgejo/workflows/integration.yml +++ b/.forgejo/workflows/integration.yml @@ -6,16 +6,9 @@ jobs: - uses: actions/checkout@v3 - run: | set -x - LXC_IP_PREFIX=10.0.9 ./forgejo-dependencies.sh + LXC_IP_PREFIX=10.0.10 ./forgejo-dependencies.sh ./forgejo.sh setup root admin1234 codeberg.org/forgejo/forgejo 1.19 - # - # Uncomment the following for a shortcut to debugging the Forgejo runner. - # It will build the runner from a designated repository and branch instead of - # downloading it from a canonical release. - # - # ./forgejo-test-helper.sh build_runner http://code.forgejo.org/forgejo/runner branch-under-debug - # export PATH=$(pwd)/forgejo-runner:$PATH - # + export FORGEJO_RUNNER_CONFIG=$(pwd)/runner-config-no-bridge.yaml ./forgejo-runner.sh setup export FORGEJO_RUNNER_LOGS=forgejo-runner.log for example in echo container service ; do @@ -25,6 +18,3 @@ jobs: echo "============================ demo ===================" ./forgejo-test-helper.sh run_workflow testdata/demo http://root:admin1234@$(cat forgejo-ip):3000 root demo setup-forgejo $(cat forgejo-token) > /tmp/output grep '^sha=' /tmp/output - echo "============================ sanity-check ===================" - ./forgejo-test-helper.sh push_self_action http://root:admin1234@$(cat forgejo-ip):3000 root setup-forgejo vTest - ./forgejo-test-helper.sh run_workflow testdata/sanity-checks http://root:admin1234@$(cat forgejo-ip):3000 root sanity-check setup-forgejo $(cat forgejo-token) diff --git a/forgejo-runner.sh b/forgejo-runner.sh index 0c2def7..a42254e 100755 --- a/forgejo-runner.sh +++ b/forgejo-runner.sh @@ -3,6 +3,8 @@ set -ex +: ${FORGEJO_RUNNER_CONFIG:=$(pwd)/runner-config.yaml} + function dependencies() { if ! which curl daemon > /dev/null ; then apt-get install -y -qq curl daemon @@ -27,7 +29,7 @@ function register() { function run() { rm -f forgejo-runner.log - daemon --chdir=$(pwd) --unsafe --env="TERM=$TERM" --env="HOME=$HOME" --env="PATH=$PATH" --env="USER=$USER" --env="TERM=dumb" --env="USERNAME=$USERNAME" --env="LANG=$LANG" --pidfile=$(pwd)/forgejo-runner-pid --errlog=$(pwd)/forgejo-runner.log --output=$(pwd)/forgejo-runner.log -- forgejo-runner --config $(pwd)/runner-config.yaml daemon + daemon --chdir=$(pwd) --unsafe --env="TERM=$TERM" --env="HOME=$HOME" --env="PATH=$PATH" --env="USER=$USER" --env="TERM=dumb" --env="USERNAME=$USERNAME" --env="LANG=$LANG" --pidfile=$(pwd)/forgejo-runner-pid --errlog=$(pwd)/forgejo-runner.log --output=$(pwd)/forgejo-runner.log -- forgejo-runner --config $FORGEJO_RUNNER_CONFIG daemon sleep 1 cat forgejo-runner.log } diff --git a/runner-config-no-bridge.yaml b/runner-config-no-bridge.yaml new file mode 100644 index 0000000..1e78425 --- /dev/null +++ b/runner-config-no-bridge.yaml @@ -0,0 +1,55 @@ +# Example configuration file, it's safe to copy this as the default config file without any modification. + +log: + # The level of logging, can be trace, debug, info, warn, error, fatal + level: info + +runner: + # Where to store the registration result. + file: .runner + # Execute how many tasks concurrently at the same time. + capacity: 1 + # Extra environment variables to run jobs. + #envs: + # A_TEST_ENV_NAME_1: a_test_env_value_1 + # A_TEST_ENV_NAME_2: a_test_env_value_2 + # Extra environment variables to run jobs from a file. + # It will be ignored if it's empty or the file doesn't exist. + env_file: .env + # The timeout for a job to be finished. + # Please note that the Gitea instance also has a timeout (3h by default) for the job. + # So the job could be stopped by the Gitea instance if it's timeout is shorter than this. + timeout: 3h + # Whether skip verifying the TLS certificate of the Gitea instance. + insecure: false + # The timeout for fetching the job from the Gitea instance. + fetch_timeout: 5s + # The interval for fetching the job from the Gitea instance. + fetch_interval: 2s + +cache: + # Enable cache server to use actions/cache. + enabled: false + # The directory to store the cache data. + # If it's empty, the cache data will be stored in $HOME/.cache/actcache. + dir: "" + # The host of the cache server. + # It's not for the address to listen, but the address to connect from job containers. + # So 0.0.0.0 is a bad choice, leave it empty to detect automatically. + host: "" + # The port of the cache server. + # 0 means to use a random available port. + port: 0 + +container: + # Specifies the network to which the container will connect. + # Could be host, bridge or the name of a custom network. + # If it's empty, act_runner will create a network automatically. + network: "" + # Whether to use privileged mode or not when launching task containers (privileged mode is required for Docker-in-Docker). + privileged: false + # And other options to be used when the container is started (eg, --add-host=my.gitea.url:host-gateway). + options: + # The parent directory of a job's working directory. + # If it's empty, /workspace will be used. + workdir_parent: