mirror of
https://code.forgejo.org/forgejo/runner.git
synced 2026-10-24 16:59:19 +03:00
Regression in job parsing caused by https://code.forgejo.org/forgejo/runner/issues/1499. While 1499 added tests for the expansion of `env` within a reusable workflow, there were no tests that covered regressions for the non-reusable workflows, and they were completely broken. Discovered by end-to-end tests after runner v12.10.0 was incorporated into Forgejo for the jobparser upgrade -- https://code.forgejo.org/forgejo/end-to-end/actions/runs/5327/jobs/10/attempt/1#jobstep-6-14388. Manually tested with a local execution of the `example-expression` end-to-end test. <!--start release-notes-assistant--> <!--URL:https://code.forgejo.org/forgejo/runner--> - bug fixes - [PR](https://code.forgejo.org/forgejo/runner/pulls/1510): <!--number 1510 --><!--line 0 --><!--description Zml4OiB3b3JrZmxvdy1sZXZlbCAnZW52JyBpcyBsb3N0IGR1cmluZyBqb2IgcGFyc2luZw==-->fix: workflow-level 'env' is lost during job parsing<!--description--> <!--end release-notes-assistant--> Reviewed-on: https://code.forgejo.org/forgejo/runner/pulls/1510
95 lines
3.3 KiB
YAML
95 lines
3.3 KiB
YAML
"on": [push]
|
|
env:
|
|
KEY1: value1
|
|
KEY2: value2
|
|
jobs:
|
|
test:
|
|
name: test
|
|
runs-on: docker
|
|
steps:
|
|
- name: environment
|
|
run: |
|
|
set -x
|
|
test "KEY1=${{ env.KEY1 }}" = "KEY1=value1"
|
|
test "KEY2=$KEY2" = "KEY2=value2"
|
|
- if: env.KEY1 == 'nogood'
|
|
name: if skip one
|
|
run: "false"
|
|
- if: ${{ env.KEY1 == 'nogood' }}
|
|
name: if skip two
|
|
run: "false"
|
|
- id: conditional
|
|
if: env.KEY1 == 'value1'
|
|
name: if does not skip
|
|
run: echo 'check=good' >> $FORGEJO_OUTPUT
|
|
- name: verify if did not skip
|
|
run: test ${{ steps.conditional.outputs.check }} = good
|
|
- name: logical
|
|
run: |
|
|
set -x
|
|
test "${{ fromJSON('["one","two"]')[0] }}" = "one"
|
|
test "${{ !false }}" = "true"
|
|
test "${{ !( 1 > 2 ) }}" = "true"
|
|
test "${{ 1 >= 1 }}" = "true"
|
|
test "${{ 1 <= 1 }}" = "true"
|
|
test "${{ 1 < 2 }}" = "true"
|
|
test "${{ 1 == 1 }}" = "true"
|
|
test "${{ 1 != 2 }}" = "true"
|
|
test "${{ true && true }}" = "true"
|
|
test "${{ true || false }}" = "true"
|
|
- name: literals
|
|
run: |
|
|
set -x
|
|
test "${{ 0.9 }}" = "0.9"
|
|
test "${{ env.NULL == null }}" = "true"
|
|
test "${{ true == true }}" = "true"
|
|
test "${{ true == false }}" = "false"
|
|
test "${{ 'something' }}" = "something"
|
|
test "${{ 'inside''quote' }}" = "inside'quote"
|
|
test "${{ 'something' == 'SOMETHING' }}" = "true"
|
|
- name: contains
|
|
run: |
|
|
set -x
|
|
test "${{ contains('number 0.9', 0.9) }}" = "true"
|
|
test "${{ contains('zeroonetwo', 'one') }}" = "true"
|
|
test "${{ contains('zeroonetwo', 'notfound') }}" = "false"
|
|
test "${{ contains(fromJSON('["one","two"]'), 'one') }}" = "true"
|
|
test "${{ contains(fromJSON('["one","two"]'), 'notfound') }}" = "false"
|
|
- name: startsWith
|
|
run: |
|
|
set -x
|
|
test "${{ startsWith('0.9 number', 0.9) }}" = "true"
|
|
test "${{ startsWith('some number', 'SOME') }}" = "true"
|
|
test "${{ startsWith('number', '0.9') }}" = "false"
|
|
- name: endsWith
|
|
run: |
|
|
set -x
|
|
test "${{ endsWith('number 0.9', 0.9) }}" = "true"
|
|
test "${{ endsWith('number some', 'SOME') }}" = "true"
|
|
test "${{ endsWith('number', '0.9') }}" = "false"
|
|
- name: format
|
|
run: |
|
|
set -x
|
|
test "${{ format('{0} and {1}', 'A', 'B') }}" = "A and B"
|
|
test "${{ format('{{ and }}', 'A', 'B') }}" = "{ and }"
|
|
- name: join
|
|
run: |
|
|
set -x
|
|
test "${{ join(fromJSON('["one","two"]')) }}" = "one,two"
|
|
test "${{ join(fromJSON('["one","two"]'), '+') }}" = "one+two"
|
|
- name: toJSON
|
|
run: |
|
|
set -x
|
|
test "${{ toJSON(0.9) }}" = "0.9"
|
|
- name: fromJSON
|
|
run: |
|
|
set -x
|
|
test "${{ fromJSON('["one","two"]')[0] }}" = 'one'
|
|
- uses: actions/checkout@v4
|
|
- name: hashFiles
|
|
run: |
|
|
set -x
|
|
hash="aea6ca2329c852f5b480ec35e1fe09d39a6bd1b50f4f9cc38fbd4fef870dc107"
|
|
test "${{ hashFiles('.forgejo/fileone.txt') }}" = $hash
|
|
test "${{ hashFiles('.forgejo/fileone.*') }}" = $hash
|