mirror of
https://gitea.com/gitea/act_runner.git
synced 2026-11-01 12:55:54 +08:00
fix: honor configured Docker registration file (#1259)
The Docker entrypoint always checked `.runner` in `/data` and ignored `runner.file` from `CONFIG_FILE`. When `runner.file` pointed elsewhere, it re-registered on every start, or skipped registration because of a stale `.runner`. It now reads the path from a new `config runner-file` subcommand, which resolves `runner.file` the same way as `register` and `daemon`. Closes https://gitea.com/gitea/runner/issues/585 --------- Co-authored-by: silverwind <me@silverwind.io> Reviewed-on: https://gitea.com/gitea/runner/pulls/1259 Reviewed-by: silverwind <2021+silverwind@noreply.gitea.com>
This commit is contained in:
@@ -27,6 +27,19 @@ func loadConfigCmd(configFile *string) *cobra.Command {
|
||||
|
||||
configCmd.AddCommand(loadGenerateConfigCmd("generate"))
|
||||
configCmd.AddCommand(loadInitConfigCmd(configFile))
|
||||
configCmd.AddCommand(&cobra.Command{
|
||||
Use: "runner-file",
|
||||
Short: "Print the registration file path used by the runner",
|
||||
Args: cobra.NoArgs,
|
||||
RunE: func(cmd *cobra.Command, _ []string) error {
|
||||
cfg, err := config.LoadDefault(*configFile)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
fmt.Fprintln(cmd.OutOrStdout(), cfg.Runner.File)
|
||||
return nil
|
||||
},
|
||||
})
|
||||
|
||||
configCmd.AddCommand(&cobra.Command{
|
||||
Use: "get <key>",
|
||||
|
||||
@@ -97,3 +97,14 @@ func TestConfigCmdResolvesTheConfigFile(t *testing.T) {
|
||||
assert.Contains(t, err.Error(), "--config")
|
||||
})
|
||||
}
|
||||
|
||||
func TestConfigCmdRunnerFileUsesConfiguredPathOrDefault(t *testing.T) {
|
||||
out, _, err := runConfigCmd(t, "", "runner-file")
|
||||
require.NoError(t, err)
|
||||
assert.Equal(t, ".runner\n", out)
|
||||
file := filepath.Join(t.TempDir(), "config.yaml")
|
||||
require.NoError(t, os.WriteFile(file, []byte("runner:\n file: 'state dir/registration.json'\n"), 0o600))
|
||||
out, _, err = runConfigCmd(t, file, "runner-file")
|
||||
require.NoError(t, err)
|
||||
assert.Equal(t, "state dir/registration.json\n", out)
|
||||
}
|
||||
|
||||
@@ -6,12 +6,11 @@ fi
|
||||
|
||||
cd /data
|
||||
|
||||
RUNNER_STATE_FILE=${RUNNER_STATE_FILE:-'.runner'}
|
||||
|
||||
CONFIG_ARG=""
|
||||
if [[ ! -z "${CONFIG_FILE}" ]]; then
|
||||
CONFIG_ARG="--config ${CONFIG_FILE}"
|
||||
fi
|
||||
RUNNER_STATE_FILE=${RUNNER_STATE_FILE:-$(gitea-runner ${CONFIG_ARG} config runner-file)}
|
||||
LABEL_ARGS=""
|
||||
if [[ ! -z "${GITEA_RUNNER_LABELS}" ]]; then
|
||||
LABEL_ARGS="--labels ${GITEA_RUNNER_LABELS}"
|
||||
|
||||
Reference in New Issue
Block a user