mirror of
https://gitea.com/gitea/act_runner.git
synced 2025-12-18 12:04:47 +00:00
Compare commits
6 Commits
v0.2.6
...
ac5c25b19e
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
ac5c25b19e | ||
|
|
130b9f1877 | ||
|
|
d7f0a906cb | ||
|
|
4c35288175 | ||
|
|
990db1bfc0 | ||
|
|
c7f39de3a8 |
@@ -18,6 +18,29 @@
|
|||||||
- GITEA_INSTANCE_URL=<instance url>
|
- GITEA_INSTANCE_URL=<instance url>
|
||||||
# When using Docker Secrets, it's also possible to use
|
# When using Docker Secrets, it's also possible to use
|
||||||
# GITEA_RUNNER_REGISTRATION_TOKEN_FILE to pass the location.
|
# GITEA_RUNNER_REGISTRATION_TOKEN_FILE to pass the location.
|
||||||
# The env var takes precedence
|
# The env var takes precedence.
|
||||||
|
# Needed only for the first start.
|
||||||
|
- GITEA_RUNNER_REGISTRATION_TOKEN=<registration token>
|
||||||
|
```
|
||||||
|
|
||||||
|
### Running `act_runner` using Docker-in-Docker (DIND)
|
||||||
|
|
||||||
|
```yml
|
||||||
|
...
|
||||||
|
runner:
|
||||||
|
image: gitea/act_runner:latest-dind-rootless
|
||||||
|
restart: always
|
||||||
|
privileged: true
|
||||||
|
depends_on:
|
||||||
|
- gitea
|
||||||
|
volumes:
|
||||||
|
- ./data/act_runner:/data
|
||||||
|
environment:
|
||||||
|
- GITEA_INSTANCE_URL=<instance url>
|
||||||
|
- DOCKER_HOST=unix:///var/run/user/1000/docker.sock
|
||||||
|
# When using Docker Secrets, it's also possible to use
|
||||||
|
# GITEA_RUNNER_REGISTRATION_TOKEN_FILE to pass the location.
|
||||||
|
# The env var takes precedence.
|
||||||
|
# Needed only for the first start.
|
||||||
- GITEA_RUNNER_REGISTRATION_TOKEN=<registration token>
|
- GITEA_RUNNER_REGISTRATION_TOKEN=<registration token>
|
||||||
```
|
```
|
||||||
|
|||||||
@@ -41,6 +41,8 @@ spec:
|
|||||||
- name: runner-data
|
- name: runner-data
|
||||||
persistentVolumeClaim:
|
persistentVolumeClaim:
|
||||||
claimName: act-runner-vol
|
claimName: act-runner-vol
|
||||||
|
securityContext:
|
||||||
|
fsGroup: 1000
|
||||||
containers:
|
containers:
|
||||||
- name: runner
|
- name: runner
|
||||||
image: gitea/act_runner:nightly-dind-rootless
|
image: gitea/act_runner:nightly-dind-rootless
|
||||||
|
|||||||
@@ -37,6 +37,7 @@ func Execute(ctx context.Context) {
|
|||||||
registerCmd.Flags().BoolVar(®Args.NoInteractive, "no-interactive", false, "Disable interactive mode")
|
registerCmd.Flags().BoolVar(®Args.NoInteractive, "no-interactive", false, "Disable interactive mode")
|
||||||
registerCmd.Flags().StringVar(®Args.InstanceAddr, "instance", "", "Gitea instance address")
|
registerCmd.Flags().StringVar(®Args.InstanceAddr, "instance", "", "Gitea instance address")
|
||||||
registerCmd.Flags().StringVar(®Args.Token, "token", "", "Runner token")
|
registerCmd.Flags().StringVar(®Args.Token, "token", "", "Runner token")
|
||||||
|
registerCmd.Flags().StringVar(®Args.TokenFile, "token-file", "", "Path to a file containing the runner token")
|
||||||
registerCmd.Flags().StringVar(®Args.RunnerName, "name", "", "Runner name")
|
registerCmd.Flags().StringVar(®Args.RunnerName, "name", "", "Runner name")
|
||||||
registerCmd.Flags().StringVar(®Args.Labels, "labels", "", "Runner tags, comma separated")
|
registerCmd.Flags().StringVar(®Args.Labels, "labels", "", "Runner tags, comma separated")
|
||||||
rootCmd.AddCommand(registerCmd)
|
rootCmd.AddCommand(registerCmd)
|
||||||
|
|||||||
@@ -73,6 +73,7 @@ type registerArgs struct {
|
|||||||
NoInteractive bool
|
NoInteractive bool
|
||||||
InstanceAddr string
|
InstanceAddr string
|
||||||
Token string
|
Token string
|
||||||
|
TokenFile string
|
||||||
RunnerName string
|
RunnerName string
|
||||||
Labels string
|
Labels string
|
||||||
}
|
}
|
||||||
@@ -250,13 +251,26 @@ func printStageHelp(stage registerStage) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func registerNoInteractive(ctx context.Context, configFile string, regArgs *registerArgs) error {
|
func registerNoInteractive(ctx context.Context, configFile string, regArgs *registerArgs) error {
|
||||||
|
var token string
|
||||||
cfg, err := config.LoadDefault(configFile)
|
cfg, err := config.LoadDefault(configFile)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
if regArgs.Token == "" && regArgs.TokenFile == "" {
|
||||||
|
return fmt.Errorf("Missing Token argument. token or token-file should be set.")
|
||||||
|
}
|
||||||
|
if regArgs.TokenFile != "" {
|
||||||
|
token_bytes, err := os.ReadFile(regArgs.TokenFile)
|
||||||
|
if err != nil {
|
||||||
|
return fmt.Errorf("Cannot read the token file: %s", regArgs.TokenFile, err)
|
||||||
|
}
|
||||||
|
token = string(token_bytes)
|
||||||
|
} else {
|
||||||
|
token = regArgs.Token
|
||||||
|
}
|
||||||
inputs := ®isterInputs{
|
inputs := ®isterInputs{
|
||||||
InstanceAddr: regArgs.InstanceAddr,
|
InstanceAddr: regArgs.InstanceAddr,
|
||||||
Token: regArgs.Token,
|
Token: token,
|
||||||
RunnerName: regArgs.RunnerName,
|
RunnerName: regArgs.RunnerName,
|
||||||
Labels: defaultLabels,
|
Labels: defaultLabels,
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -6,6 +6,8 @@ fi
|
|||||||
|
|
||||||
cd /data
|
cd /data
|
||||||
|
|
||||||
|
RUNNER_STATE_FILE=${RUNNER_STATE_FILE:-'.runner'}
|
||||||
|
|
||||||
CONFIG_ARG=""
|
CONFIG_ARG=""
|
||||||
if [[ ! -z "${CONFIG_FILE}" ]]; then
|
if [[ ! -z "${CONFIG_FILE}" ]]; then
|
||||||
CONFIG_ARG="--config ${CONFIG_FILE}"
|
CONFIG_ARG="--config ${CONFIG_FILE}"
|
||||||
@@ -21,8 +23,9 @@ if [[ -z "${GITEA_RUNNER_REGISTRATION_TOKEN}" ]] && [[ -f "${GITEA_RUNNER_REGIST
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
# Use the same ENV variable names as https://github.com/vegardit/docker-gitea-act-runner
|
# Use the same ENV variable names as https://github.com/vegardit/docker-gitea-act-runner
|
||||||
|
test -f "$RUNNER_STATE_FILE" || echo "$RUNNER_STATE_FILE is missing or not a regular file"
|
||||||
|
|
||||||
if [[ ! -s .runner ]]; then
|
if [[ ! -s "$RUNNER_STATE_FILE" ]]; then
|
||||||
try=$((try + 1))
|
try=$((try + 1))
|
||||||
success=0
|
success=0
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user