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,29 @@
name: "action"
description: "action"
inputs:
some:
description: "some input"
required: true
other:
description: "other input"
default: "${{ inputs.some }}"
required: false
outputs:
out:
description: "some output"
value: "output value"
runs:
using: "composite"
steps:
- run: |
echo "action input=${{ inputs.some }}"
[[ "${{ inputs.some == 'value' }}" = "true" ]] || exit 1
shell: bash
- run: |
echo "ENV_VAR=$ENV_VAR"
[[ "$ENV_VAR" = "value" ]] || exit 1
shell: bash
env:
ENV_VAR: ${{ inputs.other }}

View File

@@ -0,0 +1,22 @@
name: "composite"
description: "composite"
inputs:
composite-input:
description: "value"
required: true
runs:
using: "composite"
steps:
- name: test input value
run: |
echo "input value 1=${{ inputs.composite-input }}"
[[ "${{ inputs.composite-input == 'value' }}" = "true" ]] || exit 1
shell: bash
- uses: nektos/act-test-actions/js@main
- name: test input value again
run: |
echo "input value 2=${{ inputs.composite-input }}"
[[ "${{ inputs.composite-input == 'value' }}" = "true" ]] || exit 1
shell: bash

View File

@@ -0,0 +1,32 @@
name: push
on: push
jobs:
test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- id: set-output
run: echo "::set-output name=var::value"
- name: use simple composite action
uses: ./uses-composite-with-inputs/action
with:
some: ${{ steps.set-output.outputs.var }}
- name: use nested composite action
uses: ./uses-composite-with-inputs/composite
with:
composite-input: value
###
#
# Remote composite test
#
- name: use remote composite action
id: remote-composite
uses: nektos/act-test-actions/composite@main
with:
input: ${{ steps.set-output.outputs.var }}
- name: test remote composite output
run: |
echo "steps.remote-composite.outputs.output=${{ steps.remote-composite.outputs.output }}"
[[ "${{ steps.remote-composite.outputs.output == 'value' }}" = "true" ]] || exit 1
#
###