Merge gitea/act into act/

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>
This commit is contained in:
silverwind
2026-04-22 22:29:06 +02:00
1324 changed files with 294024 additions and 43 deletions

View File

@@ -0,0 +1,5 @@
FROM alpine:3
COPY entrypoint.sh /entrypoint.sh
ENTRYPOINT [ "/entrypoint.sh" ]

View File

@@ -0,0 +1,5 @@
name: 'Test'
description: 'Test'
runs:
using: 'docker'
image: 'Dockerfile'

View File

@@ -0,0 +1,26 @@
#!/bin/sh
checkEnvVar() {
name=$1
value=$2
allowEmpty=$3
if [ -z "$value" ]; then
echo "Missing environment variable: $name"
exit 1
fi
if [ "$allowEmpty" != "true" ]; then
test=$(echo "$value" |cut -f 2 -d "=")
if [ -z "$test" ]; then
echo "Environment variable is empty: $name"
exit 1
fi
fi
echo "$value"
}
checkEnvVar "GITHUB_ACTION" "$(env |grep "GITHUB_ACTION=")" false
checkEnvVar "GITHUB_ACTION_REPOSITORY" "$(env |grep "GITHUB_ACTION_REPOSITORY=")" true
checkEnvVar "GITHUB_ACTION_REF" "$(env |grep "GITHUB_ACTION_REF=")" true

View File

@@ -0,0 +1,5 @@
name: 'Test'
description: 'Test'
runs:
using: 'node12'
main: 'index.js'

View File

@@ -0,0 +1,15 @@
function checkEnvVar({ name, allowEmpty }) {
if (
process.env[name] === undefined ||
(allowEmpty === false && process.env[name] === "")
) {
throw new Error(
`${name} is undefined` + (allowEmpty === false ? " or empty" : "")
);
}
console.log(`${name}=${process.env[name]}`);
}
checkEnvVar({ name: "GITHUB_ACTION", allowEmpty: false });
checkEnvVar({ name: "GITHUB_ACTION_REPOSITORY", allowEmpty: true /* allows to be empty for local actions */ });
checkEnvVar({ name: "GITHUB_ACTION_REF", allowEmpty: true /* allows to be empty for local actions */ });

View File

@@ -0,0 +1,15 @@
name: actions-with-environment-and-context-tests
description: "Actions with environment (env vars) and context (expression) tests"
on: push
jobs:
check:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: './actions-environment-and-context-tests/js'
- uses: './actions-environment-and-context-tests/docker'
- uses: 'nektos/act-test-actions/js@main'
- uses: 'nektos/act-test-actions/docker@main'
- uses: 'nektos/act-test-actions/docker-file@main'
- uses: 'nektos/act-test-actions/docker-relative-context/action@main'