mirror of
https://gitea.com/gitea/runner.git
synced 2026-11-12 02:44:10 +00:00
Removes `builtin:checkout`, `builtin:upload-artifact` and `builtin:download-artifact`, along with the container helpers only they used. Builtin actions are tied to the runner version, so users cannot pin them, and they diverge from the shareable actions ecosystem that tools like zizmor build on. Workflows should use `actions/checkout`, `actions/upload-artifact` and `actions/download-artifact`, or lightweight third-party actions such as https://github.com/taiki-e/checkout-action. **Breaking:** steps with `uses: builtin:checkout`, released in v4.0.0, now fail and need to switch to one of the actions above. The artifact actions were never released. Docs: https://gitea.com/gitea/docs/pulls/643 Fixes: https://gitea.com/gitea/runner/issues/1405 Co-authored-by: silverwind <[email protected]> Reviewed-on: https://gitea.com/gitea/runner/pulls/1407 Reviewed-by: silverwind <[email protected]> Co-authored-by: bircni <[email protected]>
90 lines
2.7 KiB
Go
90 lines
2.7 KiB
Go
// Copyright 2022 The Gitea Authors. All rights reserved.
|
|
// Copyright 2022 The nektos/act Authors. All rights reserved.
|
|
// SPDX-License-Identifier: MIT
|
|
|
|
package runner
|
|
|
|
import (
|
|
"context"
|
|
"io"
|
|
|
|
"gitea.com/gitea/runner/act/common"
|
|
"gitea.com/gitea/runner/act/container"
|
|
|
|
"github.com/stretchr/testify/mock"
|
|
)
|
|
|
|
var noopExecutor = func(context.Context) error { return nil }
|
|
|
|
type linuxEnvironment struct {
|
|
container.LinuxContainerEnvironmentExtensions
|
|
}
|
|
|
|
func (linuxEnvironment) GetRunnerContext(context.Context) map[string]any {
|
|
return map[string]any{"os": "Linux", "arch": "X64", "temp": "/tmp", "tool_cache": container.DefaultToolCache}
|
|
}
|
|
|
|
type containerMock struct {
|
|
mock.Mock
|
|
container.Container
|
|
linuxEnvironment
|
|
}
|
|
|
|
func (cm *containerMock) Create(capAdd, capDrop []string) common.Executor {
|
|
return cm.Called(capAdd, capDrop).Get(0).(func(context.Context) error)
|
|
}
|
|
|
|
func (cm *containerMock) Pull(forcePull bool) common.Executor {
|
|
return cm.Called(forcePull).Get(0).(func(context.Context) error)
|
|
}
|
|
|
|
func (cm *containerMock) Start(attach bool) common.Executor {
|
|
return cm.Called(attach).Get(0).(func(context.Context) error)
|
|
}
|
|
|
|
func (cm *containerMock) Remove() common.Executor {
|
|
return cm.Called().Get(0).(func(context.Context) error)
|
|
}
|
|
|
|
func (cm *containerMock) Close() common.Executor {
|
|
return cm.Called().Get(0).(func(context.Context) error)
|
|
}
|
|
|
|
func (cm *containerMock) UpdateFromEnv(srcPath string, env *map[string]string) common.Executor {
|
|
return cm.Called(srcPath, env).Get(0).(func(context.Context) error)
|
|
}
|
|
|
|
func (cm *containerMock) Copy(destPath string, files ...*container.FileEntry) common.Executor {
|
|
return cm.Called(destPath, files).Get(0).(func(context.Context) error)
|
|
}
|
|
|
|
func (cm *containerMock) CopyDir(destPath, srcPath string, useGitIgnore, skipGitDir bool) common.Executor {
|
|
return cm.Called(destPath, srcPath, useGitIgnore, skipGitDir).Get(0).(func(context.Context) error)
|
|
}
|
|
|
|
func (cm *containerMock) Exec(command []string, env map[string]string, user, workdir string) common.Executor {
|
|
return cm.Called(command, env, user, workdir).Get(0).(func(context.Context) error)
|
|
}
|
|
|
|
func (cm *containerMock) GetContainerArchive(ctx context.Context, srcPath string) (io.ReadCloser, error) {
|
|
args := cm.Called(ctx, srcPath)
|
|
err, _ := args.Get(1).(error)
|
|
return args.Get(0).(io.ReadCloser), err
|
|
}
|
|
|
|
func (cm *containerMock) DumpLogs(ctx context.Context) error {
|
|
return cm.Called(ctx).Error(0)
|
|
}
|
|
|
|
func (cm *containerMock) Inspect(ctx context.Context) (*container.Info, error) {
|
|
args := cm.Called(ctx)
|
|
info, _ := args.Get(0).(*container.Info)
|
|
err, _ := args.Get(1).(error)
|
|
return info, err
|
|
}
|
|
|
|
func (cm *containerMock) ReplaceLogWriter(stdout, stderr io.Writer) (io.Writer, io.Writer) {
|
|
args := cm.Called(stdout, stderr)
|
|
return args.Get(0).(io.Writer), args.Get(1).(io.Writer)
|
|
}
|