mirror of
https://gitea.com/gitea/act_runner.git
synced 2026-04-24 12:50:31 +08:00
Merges the `gitea.com/gitea/act` fork into this repository as the `act/` directory and consumes it as a local package. The `replace github.com/nektos/act => gitea.com/gitea/act` directive is removed; act's dependencies are merged into the root `go.mod`. - Imports rewritten: `github.com/nektos/act/pkg/...` → `gitea.com/gitea/act_runner/act/...` (flattened — `pkg/` boundary dropped to match the layout forgejo-runner adopted). - Dropped act's CLI (`cmd/`, `main.go`) and all upstream project files; kept the library tree + `LICENSE`. - Added `// Copyright <year> The Gitea Authors ...` / `// Copyright <year> nektos` headers to 104 `.go` files. - Pre-existing act lint violations annotated inline with `//nolint:<linter> // pre-existing issue from nektos/act`. `.golangci.yml` is unchanged vs `main`. - Makefile test target: `-race -short` (matches forgejo-runner). - Pre-existing integration test failures fixed: race in parallel executor (atomic counters); TestSetupEnv / command_test / expression_test / run_context_test updated to match gitea fork runtime; TestJobExecutor and TestActionCache gated on `testing.Short()`. Full `gitea/act` commit history is reachable via the second parent. Co-Authored-By: Claude (Opus 4.7) <noreply@anthropic.com>
71 lines
1.8 KiB
Go
71 lines
1.8 KiB
Go
// Copyright 2022 The Gitea Authors. All rights reserved.
|
|
// Copyright 2022 The nektos/act Authors. All rights reserved.
|
|
// SPDX-License-Identifier: MIT
|
|
|
|
package container
|
|
|
|
import (
|
|
"fmt"
|
|
"os"
|
|
"runtime"
|
|
"strings"
|
|
"testing"
|
|
|
|
log "github.com/sirupsen/logrus"
|
|
"github.com/stretchr/testify/assert"
|
|
)
|
|
|
|
func TestContainerPath(t *testing.T) {
|
|
type containerPathJob struct {
|
|
destinationPath string
|
|
sourcePath string
|
|
workDir string
|
|
}
|
|
|
|
linuxcontainerext := &LinuxContainerEnvironmentExtensions{}
|
|
|
|
if runtime.GOOS == "windows" {
|
|
cwd, err := os.Getwd()
|
|
if err != nil {
|
|
log.Error(err)
|
|
}
|
|
|
|
rootDrive := os.Getenv("SystemDrive")
|
|
rootDriveLetter := strings.ReplaceAll(strings.ToLower(rootDrive), `:`, "")
|
|
for _, v := range []containerPathJob{
|
|
{"/mnt/c/Users/act/go/src/github.com/nektos/act", "C:\\Users\\act\\go\\src\\github.com\\nektos\\act\\", ""},
|
|
{"/mnt/f/work/dir", `F:\work\dir`, ""},
|
|
{"/mnt/c/windows/to/unix", "windows\\to\\unix", rootDrive + "\\"},
|
|
{fmt.Sprintf("/mnt/%v/act", rootDriveLetter), "act", rootDrive + "\\"},
|
|
} {
|
|
if v.workDir != "" {
|
|
t.Chdir(v.workDir)
|
|
}
|
|
|
|
assert.Equal(t, v.destinationPath, linuxcontainerext.ToContainerPath(v.sourcePath))
|
|
}
|
|
|
|
t.Chdir(cwd)
|
|
} else {
|
|
cwd, err := os.Getwd()
|
|
if err != nil {
|
|
log.Error(err)
|
|
}
|
|
for _, v := range []containerPathJob{
|
|
{"/home/act/go/src/github.com/nektos/act", "/home/act/go/src/github.com/nektos/act", ""},
|
|
{"/home/act", `/home/act/`, ""},
|
|
{cwd, ".", ""},
|
|
} {
|
|
assert.Equal(t, v.destinationPath, linuxcontainerext.ToContainerPath(v.sourcePath))
|
|
}
|
|
}
|
|
}
|
|
|
|
type typeAssertMockContainer struct {
|
|
Container
|
|
LinuxContainerEnvironmentExtensions
|
|
}
|
|
|
|
// Type assert Container + LinuxContainerEnvironmentExtensions implements ExecutionsEnvironment
|
|
var _ ExecutionsEnvironment = &typeAssertMockContainer{}
|