- enforce timeout-minutes timeout for jobs in a way similar to how it is done for steps - minimal refactor of evaluateStepTimeout evaluateTimeout so it can be used by jobs as well, with additional debug information and error logging if parsing fails - add integration tests for both step and job timeout-minutes, verifying expressions are allowed and evaluated Resolves forgejo/runner#979 --- Manually verified to work as expected https://v13.next.forgejo.org/earl-warren/testtimeout-minutes/actions/runs/3/jobs/0/attempt/1 ```yaml on: [push] jobs: test: runs-on: docker timeout-minutes: 1 steps: - run: | set -x while : ; do sleep 30 done ```  <!--start release-notes-assistant--> <!--URL:https://code.forgejo.org/forgejo/runner--> - bug fixes - [PR](https://code.forgejo.org/forgejo/runner/pulls/982): <!--number 982 --><!--line 0 --><!--description Zml4OiBlbmZvcmNlIGpvYi48am9iLWlkPi50aW1lb3V0LW1pbnV0ZXM=-->fix: enforce job.<job-id>.timeout-minutes<!--description--> <!--end release-notes-assistant--> Reviewed-on: https://code.forgejo.org/forgejo/runner/pulls/982 Reviewed-by: Michael Kriese <michael.kriese@gmx.de> Reviewed-by: Mathieu Fenniak <mfenniak@noreply.code.forgejo.org> Co-authored-by: Earl Warren <contact@earl-warren.org> Co-committed-by: Earl Warren <contact@earl-warren.org>
41 lines
1.1 KiB
YAML
41 lines
1.1 KiB
YAML
name: basic
|
|
on: push
|
|
|
|
env:
|
|
TEST: value
|
|
|
|
jobs:
|
|
check:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- run: '[[ "$(pwd)" == "${GITHUB_WORKSPACE}" ]]'
|
|
- run: echo ${{ env.TEST }} | grep value
|
|
- run: env
|
|
- uses: docker://code.forgejo.org/oci/node:22
|
|
with:
|
|
somekey: ${{ env.TEST }}
|
|
args: echo ${INPUT_SOMEKEY} | grep somevalue
|
|
- run: ls
|
|
- run: echo 'hello world'
|
|
- run: echo ${GITHUB_SHA} >> $(dirname "${GITHUB_WORKSPACE}")/sha.txt
|
|
- timeout-minutes: 30
|
|
run: cat $(dirname "${GITHUB_WORKSPACE}")/sha.txt | grep ${GITHUB_SHA}
|
|
build:
|
|
runs-on: ubuntu-latest
|
|
needs: [check]
|
|
steps:
|
|
- uses: https://data.forgejo.org/actions/checkout@v2
|
|
- uses: ./actions/action1
|
|
with:
|
|
args: echo 'build'
|
|
test:
|
|
runs-on: ubuntu-latest
|
|
needs: [build]
|
|
steps:
|
|
- uses: docker://code.forgejo.org/oci/node:22
|
|
with:
|
|
args: env
|
|
- uses: docker://code.forgejo.org/oci/node:22
|
|
with:
|
|
entrypoint: /bin/echo
|
|
args: ${{github.event_name}}
|