mirror of
https://gitea.com/gitea/runner.git
synced 2026-11-04 06:25:32 +00:00
1. Restructures the README into installation, quickstart, deployment, configuration, jobs and operation, and shortens it to user-facing prose. Option details are left to `config.example.yaml` and `docs/`, existing heading anchors are kept where possible. 2. FreeBSD builds used the Docker stub, so `docker://` labels, services and Docker actions failed there. The Docker code works on FreeBSD against a remote daemon, so it is enabled, and host jobs report `runner.os` as `FreeBSD`. 3. `make build` on Windows now writes `gitea-runner.exe`, taking the suffix from `go env GOEXE`. Reviewed-on: https://gitea.com/gitea/runner/pulls/1367 Reviewed-by: Lunny Xiao <[email protected]> Co-authored-by: silverwind <[email protected]>
36 lines
1017 B
Go
36 lines
1017 B
Go
// Copyright 2026 The Gitea Authors. All rights reserved.
|
|
// SPDX-License-Identifier: MIT
|
|
|
|
//go:build !WITHOUT_DOCKER && (linux || darwin || netbsd || freebsd)
|
|
|
|
package container
|
|
|
|
import (
|
|
"archive/tar"
|
|
"os"
|
|
"path/filepath"
|
|
"syscall"
|
|
"testing"
|
|
|
|
"github.com/stretchr/testify/assert"
|
|
"github.com/stretchr/testify/require"
|
|
)
|
|
|
|
func TestCreateBuildContextKeepsHardlinkedSpecialFilesLinked(t *testing.T) {
|
|
dir := t.TempDir()
|
|
require.NoError(t, syscall.Mkfifo(filepath.Join(dir, "first"), 0o644))
|
|
require.NoError(t, os.Link(filepath.Join(dir, "first"), filepath.Join(dir, "second")))
|
|
|
|
buildContext, err := createBuildContext(t.Context(), dir, "Dockerfile")
|
|
require.NoError(t, err)
|
|
defer buildContext.Close()
|
|
reader := tar.NewReader(buildContext)
|
|
first, err := reader.Next()
|
|
require.NoError(t, err)
|
|
assert.Equal(t, byte(tar.TypeFifo), first.Typeflag)
|
|
second, err := reader.Next()
|
|
require.NoError(t, err)
|
|
assert.Equal(t, byte(tar.TypeLink), second.Typeflag)
|
|
assert.Equal(t, first.Name, second.Linkname)
|
|
}
|