1
0
Fork 0
mirror of https://code.forgejo.org/forgejo/runner.git synced 2025-09-15 18:57:01 +00:00

chore(tests): add coverage for ./pkg/runner (#202)

Only changes test files.

---

- remove tests specific to running on a host with no container
  they are the same as with the containers (TestRunEventHostEnvironment)
- prefix the name of the tests with a distinctive name to
  more easily run them together
- use code.forgejo.org/oci images whereever possible
- remove some tests that are either
  - difficult to understand (ancient bugs)
  - not yet well understood (related to reusable workflows)
  - depend on github (generation of workflows to be run on the fly
    e.g. updateTestIfWorkflow)
- fix the TestSanitizeNetworkAlias tests that were not run
  and make them easier to debug
- disable tests of options that are forbidden in Forgejo Actions
  (testdata/container-hostname/push.yml)

Reviewed-on: https://code.forgejo.org/forgejo/act/pulls/202
Reviewed-by: Michael Kriese <michael.kriese@gmx.de>
Co-authored-by: Earl Warren <contact@earl-warren.org>
Co-committed-by: Earl Warren <contact@earl-warren.org>
This commit is contained in:
Earl Warren 2025-07-28 06:18:46 +00:00 committed by earl-warren
parent 30ea23384a
commit 87d973b894
65 changed files with 218 additions and 656 deletions

View file

@ -8,7 +8,7 @@ jobs:
- run: |
echo MYGLOBALENV1=myglobalval1 > $GITHUB_ENV
echo "::set-env name=MYGLOBALENV2::myglobalval2"
- uses: nektos/act-test-actions/script@main
- uses: https://code.forgejo.org/forgejo/act-test-actions/script@main
with:
main: |
env
@ -24,4 +24,4 @@ jobs:
env:
MYGLOBALENV1ALIAS: ${{ env.MYGLOBALENV1 }}
MYGLOBALENV2ALIAS: ${{ env.MYGLOBALENV2 }}
MYGLOBALENV3ALIAS: ${{ env.MYGLOBALENV3 }}
MYGLOBALENV3ALIAS: ${{ env.MYGLOBALENV3 }}

View file

@ -3,7 +3,7 @@ jobs:
_:
runs-on: ubuntu-latest
steps:
- uses: nektos/act-test-actions/script@main
- uses: https://code.forgejo.org/forgejo/act-test-actions/script@main
with:
pre: |
env
@ -22,7 +22,7 @@ jobs:
test-id-collision-bug:
runs-on: ubuntu-latest
steps:
- uses: nektos/act-test-actions/script@main
- uses: https://code.forgejo.org/forgejo/act-test-actions/script@main
id: script
with:
pre: |
@ -39,10 +39,10 @@ jobs:
[ "$STATE_mystate1" = "mystateval" ]
[ "$STATE_mystate2" = "mystateval" ]
[ "$STATE_mystate3" = "mystateval" ]
- uses: nektos/act-test-actions/script@main
- uses: https://code.forgejo.org/forgejo/act-test-actions/script@main
id: pre-script
with:
main: |
env
echo mystate0=mystateerror > $GITHUB_STATE
echo "::save-state name=mystate1::mystateerror"
echo "::save-state name=mystate1::mystateerror"

View file

@ -7,7 +7,7 @@ jobs:
env:
JOB: "1"
steps:
- uses: actions/checkout@v2
- uses: https://data.forgejo.org/actions/checkout@v2
- uses: ./act-composite-env-test/action1
env:
COMPOSITE_OVERRIDE: "1"

View file

@ -6,10 +6,10 @@ jobs:
check:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: https://data.forgejo.org/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'
- uses: 'https://code.forgejo.org/forgejo/act-test-actions/js@main'
- uses: 'https://code.forgejo.org/forgejo/act-test-actions/docker@main'
- uses: 'https://code.forgejo.org/forgejo/act-test-actions/docker-file@main'
- uses: 'https://code.forgejo.org/forgejo/act-test-actions/docker-relative-context/action@main'

View file

@ -23,7 +23,7 @@ jobs:
runs-on: ubuntu-latest
needs: [check]
steps:
- uses: actions/checkout@v2
- uses: https://data.forgejo.org/actions/checkout@v2
- uses: ./actions/action1
with:
args: echo 'build'

View file

@ -5,4 +5,4 @@ jobs:
checkout:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: https://data.forgejo.org/actions/checkout@v2

View file

@ -5,7 +5,7 @@ jobs:
test-for-output:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: https://data.forgejo.org/actions/checkout@v2
- uses: ./actions/composite-fail-with-output
id: composite-fail-with-output
continue-on-error: true

View file

@ -9,22 +9,18 @@ jobs:
with-hostname:
runs-on: ubuntu-latest
container:
image: node:16-buster-slim
options: "--hostname my.host.local --user 100:101"
image: code.forgejo.org/oci/node:22-bookworm
options: "--hostname my.host.local"
steps:
- run: |
echo "UID: $(id -u)"
echo "GID: $(id -g)"
echo "HOST: $(uname -n)"
[[ "$(id -u)" == "100" ]] && [[ "$(id -g)" == "101" ]] && [[ "$(uname -n)" == "my.host.local" ]]
[[ "$(uname -n)" == "my.host.local" ]]
default-hostname:
runs-on: ubuntu-latest
container:
image: node:16-buster-slim
image: code.forgejo.org/oci/node:22-bookworm
steps:
- run: |
echo "UID: $(id -u)"
echo "GID: $(id -g)"
echo "HOST: $(uname -n)"
[[ "$(id -u)" == "0" ]] && [[ "$(id -g)" == "0" ]] && [[ $(uname -n) ]] && [[ "$(uname -n)" != "my.host.local" ]]
[[ "$(uname -n)" != "my.host.local" ]]

View file

@ -4,5 +4,5 @@ jobs:
second-post-step-should-fail:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: https://data.forgejo.org/actions/checkout@v3
- uses: ./ensure-post-steps/action-composite/

View file

@ -3,7 +3,7 @@ jobs:
mytest:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: https://data.forgejo.org/actions/checkout@v2
# - run: exit 1
- uses: ./
if: failure()
@ -26,4 +26,4 @@ jobs:
needs: mytest
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: https://data.forgejo.org/actions/checkout@v2

View file

@ -3,7 +3,7 @@ jobs:
test-inputs-via-env-context:
runs-on: self-hosted
steps:
- uses: actions/checkout@v3
- uses: https://data.forgejo.org/actions/checkout@v3
- uses: ./inputs-via-env-context
with:
test-env-input: ${{ env.test-env-input }}

View file

@ -10,6 +10,6 @@ jobs:
steps:
- name: hello
uses: actions/hello-world-docker-action@v1
uses: https://github.com/actions/hello-world-docker-action@v1
with:
who-to-greet: "World"

View file

@ -1,13 +0,0 @@
on: push
env:
variable: "${{ github.repository_owner }}"
jobs:
test:
runs-on: ubuntu-latest
steps:
- name: print env.variable
run: |
echo ${{ env.variable }}
exit ${{ (env.variable == 'nektos') && '0' || '1'}}

View file

@ -8,11 +8,11 @@ jobs:
name: Test
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: https://data.forgejo.org/actions/checkout@v2
with:
path: test-subdir1
- run: grep "Checkout" test-subdir1/issue-122/main.yaml
- uses: actions/checkout@v2
- uses: https://data.forgejo.org/actions/checkout@v2
with:
repository: actions/checkout
path: test-subdir2

View file

@ -5,7 +5,7 @@ jobs:
kind:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@master
- uses: https://data.forgejo.org/actions/checkout@master
- uses: engineerd/setup-kind@v0.3.0
- name: Testing
run: |

View file

@ -9,24 +9,24 @@ jobs:
steps:
- name: My first false step
if: "endsWith('Should not', 'o1')"
uses: actions/checkout@v2.0.0
uses: https://data.forgejo.org/actions/checkout@v2.0.0
with:
ref: refs/pull/${{github.event.pull_request.number}}/merge
fetch-depth: 5
- name: My first true step
if: ${{endsWith('Hello world', 'ld')}}
uses: actions/hello-world-javascript-action@main
uses: https://github.com/actions/hello-world-javascript-action@main
with:
who-to-greet: "Renst the Octocat"
- name: My second false step
if: "endsWith('Should not evaluate', 'o2')"
uses: actions/checkout@v2.0.0
uses: https://data.forgejo.org/actions/checkout@v2.0.0
with:
ref: refs/pull/${{github.event.pull_request.number}}/merge
fetch-depth: 5
- name: My third false step
if: ${{endsWith('Should not evaluate', 'o3')}}
uses: actions/checkout@v2.0.0
uses: https://data.forgejo.org/actions/checkout@v2.0.0
with:
ref: refs/pull/${{github.event.pull_request.number}}/merge
fetch-depth: 5

View file

@ -9,22 +9,22 @@ jobs:
steps:
- name: My first false step
if: "endsWith('Hello world', 'o1')"
uses: actions/hello-world-javascript-action@main
uses: https://github.com/actions/hello-world-javascript-action@main
with:
who-to-greet: 'Mona the Octocat'
- name: My first true step
if: "!endsWith('Hello world', 'od')"
uses: actions/hello-world-javascript-action@main
uses: https://github.com/actions/hello-world-javascript-action@main
with:
who-to-greet: "Renst the Octocat"
- name: My second false step
if: "endsWith('Hello world', 'o2')"
uses: actions/hello-world-javascript-action@main
uses: https://github.com/actions/hello-world-javascript-action@main
with:
who-to-greet: 'Act the Octocat'
- name: My third false step
if: "endsWith('Hello world', 'o2')"
uses: actions/hello-world-javascript-action@main
uses: https://github.com/actions/hello-world-javascript-action@main
with:
who-to-greet: 'Git the Octocat'

View file

@ -5,5 +5,5 @@ jobs:
test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: https://data.forgejo.org/actions/checkout@v2
- uses: ./actions/docker-url

View file

@ -8,7 +8,7 @@ jobs:
test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: https://data.forgejo.org/actions/checkout@v2
- uses: ./actions/docker-local
id: dockerlocal
with:

View file

@ -5,7 +5,7 @@ jobs:
test-node12:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: https://data.forgejo.org/actions/checkout@v2
- uses: ./actions/node12
with:
who-to-greet: 'Mona the Octocat'
@ -13,7 +13,7 @@ jobs:
test-node16:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: https://data.forgejo.org/actions/checkout@v2
- uses: ./actions/node16
with:
who-to-greet: 'Mona the Octocat'
@ -21,7 +21,7 @@ jobs:
test-node20:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: https://data.forgejo.org/actions/checkout@v2
- uses: ./actions/node20
with:
who-to-greet: 'Mona the Octocat'

View file

@ -32,7 +32,7 @@ runs:
shell: bash
- uses: ./localdockerimagetest_
# Also test a remote docker action here
- uses: actions/hello-world-docker-action@v1
- uses: https://github.com/actions/hello-world-docker-action@v1
with:
who-to-greet: 'Mona the Octocat'
# Test if GITHUB_ACTION_PATH is set correctly after all steps

View file

@ -5,5 +5,5 @@ jobs:
test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: https://data.forgejo.org/actions/checkout@v2
- uses: ./local-action-via-composite-dockerfile/action

View file

@ -1,3 +0,0 @@
local-repositories:
https://github.com/nektos/test-override@a: testdata/actions/node20
nektos/test-override@b: testdata/actions/node16

View file

@ -1,9 +0,0 @@
name: basic
on: push
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: nektos/test-override@a
- uses: nektos/test-override@b

View file

@ -5,7 +5,7 @@ jobs:
test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: https://data.forgejo.org/actions/checkout@v3
- run: echo "::add-mask::secret value"
- run: echo "secret value"
- uses: ./mask-values/composite

View file

@ -22,8 +22,8 @@ jobs:
remote-invalid-step:
runs-on: ubuntu-latest
steps:
- uses: nektos/act-test-actions/invalid-composite-action/invalid-step@main
- uses: https://code.forgejo.org/forgejo/act-test-actions/invalid-composite-action/invalid-step@main
remote-missing-steps:
runs-on: ubuntu-latest
steps:
- uses: nektos/act-test-actions/invalid-composite-action/missing-steps@main
- uses: https://code.forgejo.org/forgejo/act-test-actions/invalid-composite-action/missing-steps@main

View file

@ -6,8 +6,8 @@ jobs:
test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: actions/setup-node@v1
- uses: https://data.forgejo.org/actions/checkout@v2
- uses: https://github.com/actions/setup-node@v1
with:
node-version: 12.6
- run: which node

View file

@ -5,11 +5,11 @@ jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: https://data.forgejo.org/actions/checkout@v2
- uses: ./actions/action1
with:
args: echo 'build'
- uses: actions/hello-world-javascript-action@master
- uses: https://github.com/actions/hello-world-javascript-action@master
with:
who-to-greet: 'Mona the Octocat'
test1:

View file

@ -4,12 +4,12 @@ jobs:
test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: https://data.forgejo.org/actions/checkout@v3
- name: "Append to $GITHUB_PATH"
run: |
echo "/opt/hostedtoolcache/node/18.99/x64/bin" >> $GITHUB_PATH
- name: test path (after setup)
run: |
if ! echo "$PATH" |grep "/opt/hostedtoolcache/node/18.*/\(x64\|arm64\)/bin" ; then
@ -27,7 +27,7 @@ jobs:
exit 1
fi
- uses: nektos/act-test-actions/composite@main
- uses: https://code.forgejo.org/forgejo/act-test-actions/composite@main
with:
input: some input

View file

@ -9,8 +9,8 @@ jobs:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: actions/setup-python@v1.1.1
- uses: https://data.forgejo.org/actions/checkout@v2
- uses: https://github.com/actions/setup-python@v1.1.1
with:
python-version: 3.7

View file

@ -5,4 +5,4 @@ jobs:
test:
runs-on: ubuntu-latest
steps:
- uses: nektos/act-test-actions/composite-assert-action-ref-action@main
- uses: https://code.forgejo.org/forgejo/act-test-actions/composite-assert-action-ref-action@main

View file

@ -5,19 +5,19 @@ jobs:
test:
runs-on: ubuntu-latest
steps:
- uses: nektos/act-test-actions/composite-js-pre-with-defaults/js@main
- uses: https://code.forgejo.org/forgejo/act-test-actions/composite-js-pre-with-defaults/js@main
with:
in: nix
- uses: nektos/act-test-actions/composite-js-pre-with-defaults@main
- uses: https://code.forgejo.org/forgejo/act-test-actions/composite-js-pre-with-defaults@main
with:
in: secretval
- uses: nektos/act-test-actions/composite-js-pre-with-defaults@main
- uses: https://code.forgejo.org/forgejo/act-test-actions/composite-js-pre-with-defaults@main
with:
in: secretval
- uses: nektos/act-test-actions/composite-js-pre-with-defaults/js@main
- uses: https://code.forgejo.org/forgejo/act-test-actions/composite-js-pre-with-defaults/js@main
with:
pre: "true"
in: nix
- uses: nektos/act-test-actions/composite-js-pre-with-defaults/js@main
- uses: https://code.forgejo.org/forgejo/act-test-actions/composite-js-pre-with-defaults/js@main
with:
in: nix
in: nix

View file

@ -5,6 +5,6 @@ jobs:
test:
runs-on: ubuntu-latest
steps:
- uses: actions/hello-world-docker-action@v1
- uses: https://github.com/actions/hello-world-docker-action@v1
with:
who-to-greet: 'Mona the Octocat'

View file

@ -23,7 +23,7 @@ jobs:
exit 1
shell: bash
- uses: actions/hello-world-javascript-action@v1
- uses: https://github.com/actions/hello-world-javascript-action@v1
with:
who-to-greet: 'Mona the Octocat'

View file

@ -5,8 +5,8 @@ jobs:
test:
runs-on: ubuntu-latest
steps:
- uses: actions/hello-world-javascript-action@v1
- uses: https://github.com/actions/hello-world-javascript-action@v1
with:
who-to-greet: 'Mona the Octocat'
- uses: cloudposse/actions/github/slash-command-dispatch@0.14.0
- uses: https://github.com/cloudposse/actions/github/slash-command-dispatch@0.14.0

View file

@ -1,14 +0,0 @@
name: services-host-network
on: push
jobs:
services-host-network:
runs-on: ubuntu-latest
services:
nginx:
image: "nginx:latest"
ports:
- "8080:80"
steps:
- run: apt-get -qq update && apt-get -yqq install --no-install-recommends curl net-tools
- run: netstat -tlpen
- run: curl -v http://localhost:8080

View file

@ -5,7 +5,7 @@ jobs:
runs-on: ubuntu-latest
# https://docs.github.com/en/actions/using-containerized-services/about-service-containers#running-jobs-in-a-container
container:
image: "ubuntu:latest"
image: code.forgejo.org/oci/node:22-bookworm
services:
nginx:
image: "nginx:latest"

View file

@ -5,9 +5,9 @@ jobs:
test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: https://data.forgejo.org/actions/checkout@v2
- uses: ./uses-action-with-pre-and-post-step/last-action
- uses: nektos/act-test-actions/js-with-pre-and-post-step@main
- uses: https://code.forgejo.org/forgejo/act-test-actions/js-with-pre-and-post-step@main
with:
pre: true
post: true

View file

@ -7,4 +7,4 @@ jobs:
steps:
- name: Test
run: echo
uses: actions/checkout@v2
uses: https://data.forgejo.org/actions/checkout@v2

View file

@ -5,7 +5,7 @@ jobs:
failing-composite-action:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: https://data.forgejo.org/actions/checkout@v2
- uses: ./uses-composite-with-error/composite_action2
- run: echo should run
if: failure()

View file

@ -14,7 +14,7 @@ runs:
echo "input value 1=${{ inputs.composite-input }}"
[[ "${{ inputs.composite-input == 'value' }}" = "true" ]] || exit 1
shell: bash
- uses: nektos/act-test-actions/js@main
- uses: https://code.forgejo.org/forgejo/act-test-actions/js@main
- name: test input value again
run: |
echo "input value 2=${{ inputs.composite-input }}"

View file

@ -4,7 +4,7 @@ jobs:
test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: https://data.forgejo.org/actions/checkout@v2
- id: set-output
run: echo "::set-output name=var::value"
- name: use simple composite action
@ -21,7 +21,7 @@ jobs:
#
- name: use remote composite action
id: remote-composite
uses: nektos/act-test-actions/composite@main
uses: https://code.forgejo.org/forgejo/act-test-actions/composite@main
with:
input: ${{ steps.set-output.outputs.var }}
- name: test remote composite output

View file

@ -6,6 +6,6 @@ jobs:
runs-on: ubuntu-latest
steps:
- uses: ./uses-composite-with-pre-and-post-steps/last-action
- uses: actions/checkout@v2
- uses: https://data.forgejo.org/actions/checkout@v2
- run: echo -n "STEP_OUTPUT_TEST=empty" >> $GITHUB_ENV
- uses: ./uses-composite-with-pre-and-post-steps/composite_action

View file

@ -5,7 +5,7 @@ jobs:
test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: https://data.forgejo.org/actions/checkout@v2
- uses: ./uses-composite/composite_action
id: composite
with:

View file

@ -4,4 +4,4 @@ jobs:
test:
runs-on: ubuntu-latest
steps:
- uses: actions/hello-world-docker-action@b136eb8894c5cb1dd5807da824be97ccdf9b5423
- uses: https://github.com/actions/hello-world-docker-action@b136eb8894c5cb1dd5807da824be97ccdf9b5423

View file

@ -4,4 +4,4 @@ jobs:
test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout
- uses: https://code.forgejo.org/actions/checkout

View file

@ -4,4 +4,4 @@ jobs:
test:
runs-on: ubuntu-latest
steps:
- uses: sergioramos/yarn-actions/install@v6
- uses: https://github.com/sergioramos/yarn-actions/install@v6

View file

@ -4,4 +4,4 @@ jobs:
test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: https://data.forgejo.org/actions/checkout@v2

View file

@ -4,4 +4,4 @@ jobs:
test:
runs-on: ubuntu-latest
steps:
- uses: actions/hello-world-docker-action@b136eb8
- uses: https://github.com/actions/hello-world-docker-action@b136eb8

View file

@ -9,7 +9,7 @@ inputs:
runs:
using: "composite"
steps:
- uses: actions/setup-node@v3
- uses: https://github.com/actions/setup-node@v3
with:
node-version: '16'
- run: |

View file

@ -5,7 +5,7 @@ jobs:
test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: https://data.forgejo.org/actions/checkout@v2
- uses: ./uses-nested-composite/composite_action2
with:
test_input_optional: Test

View file

@ -6,5 +6,5 @@ jobs:
test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: https://data.forgejo.org/actions/checkout@v2
- uses: ./uses-sh-test-action-path/sh_test_action_path

View file

@ -6,5 +6,5 @@ jobs:
test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: https://data.forgejo.org/actions/checkout@v2
- uses: ./uses-sh/sh_action

View file

@ -2,7 +2,7 @@ on: push
jobs:
reusable-workflow:
uses: nektos/act-test-actions/.github/workflows/reusable-workflow.yml@main
uses: https://code.forgejo.org/forgejo/act-test-actions/.github/workflows/reusable-workflow.yml@main
with:
string_required: string
bool_required: ${{ true }}
@ -11,7 +11,7 @@ jobs:
secret: keep_it_private
reusable-workflow-with-inherited-secrets:
uses: nektos/act-test-actions/.github/workflows/reusable-workflow.yml@main
uses: https://code.forgejo.org/forgejo/act-test-actions/.github/workflows/reusable-workflow.yml@main
with:
string_required: string
bool_required: ${{ true }}

View file

@ -34,7 +34,7 @@ jobs:
if: env.KEY != 'n/a' || env.Key != 'n/a' || env.key != 'n/a'
env:
KeY: 'n/a'
- uses: actions/checkout@v3
- uses: https://data.forgejo.org/actions/checkout@v3
- uses: ./windows-add-env
- name: Assert composite env is merged case insensitive
run: exit 1