Merge parser and expressions into repository

This commit is contained in:
Christopher Schleiden
2023-01-06 15:54:31 -08:00
parent 4f961a6247
commit 70e33f999d
328 changed files with 35337 additions and 0 deletions
@@ -0,0 +1,79 @@
include-source: false # Drop file/line/col from output
skip:
- TypeScript
---
name: Update awesome list
on:
workflow_dispatch:
schedule:
- cron: '0 */12 * * *'
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Awesome generator
uses: simonecorsi/mawesome@v2
with:
api-token: ${{ secrets.API_TOKEN }} # <--- there is a unicode whitespace character here, VSCode will highlight it, the web UI does not
compact-by-topic: 'true'
github-name: ${{ github.repository_owner }}
---
{
"jobs": [
{
"type": "job",
"id": "build",
"name": "build",
"if": {
"type": 3,
"expr": "success()"
},
"runs-on": "ubuntu-latest",
"steps": [
{
"id": "__actions_checkout",
"if": {
"type": 3,
"expr": "success()"
},
"uses": "actions/checkout@v3"
},
{
"id": "__simonecorsi_mawesome",
"name": "Awesome generator",
"if": {
"type": 3,
"expr": "success()"
},
"uses": "simonecorsi/mawesome@v2",
"with": {
"type": 2,
"map": [
{
"Key": "api-token",
"Value": {
"type": 3,
"expr": "secrets.API_TOKEN"
}
},
{
"Key": "compact-by-topic",
"Value": "true"
},
{
"Key": "github-name",
"Value": {
"type": 3,
"expr": "github.repository_owner"
}
}
]
}
}
]
}
]
}
+44
View File
@@ -0,0 +1,44 @@
include-source: false # Drop file/line/col from output
---
on: push
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- run: echo hi
continue-on-error: true
---
{
"jobs": [
{
"type": "job",
"id": "build",
"name": "build",
"if": {
"type": 3,
"expr": "success()"
},
"runs-on": "ubuntu-latest",
"steps": [
{
"id": "__actions_checkout",
"if": {
"type": 3,
"expr": "success()"
},
"uses": "actions/checkout@v3"
},
{
"id": "__run",
"if": {
"type": 3,
"expr": "success()"
},
"continue-on-error": true,
"run": "echo hi"
}
]
}
]
}
+148
View File
@@ -0,0 +1,148 @@
include-source: false # Drop file/line/col from output
skip:
- TypeScript
---
on: push
concurrency:
group: ${{ github.ref }}
cancel-in-progress: true
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- run: echo hi
continue-on-error: true
concurrency:
group: ${{ github.ref }}
cancel-in-progress: true
build2:
runs-on: linux
concurrency: ci-${{ github.ref }}
build3:
runs-on: linux
concurrency: staging
build4:
runs-on: macos-latest
concurrency:
group: ref
cancel-in-progress: ${{ github.ref }}
---
{
"concurrency": {
"type": 2,
"map": [
{
"Key": "group",
"Value": {
"type": 3,
"expr": "github.ref"
}
},
{
"Key": "cancel-in-progress",
"Value": true
}
]
},
"jobs": [
{
"type": "job",
"id": "build",
"name": "build",
"if": {
"type": 3,
"expr": "success()"
},
"concurrency": {
"type": 2,
"map": [
{
"Key": "group",
"Value": {
"type": 3,
"expr": "github.ref"
}
},
{
"Key": "cancel-in-progress",
"Value": true
}
]
},
"runs-on": "ubuntu-latest",
"steps": [
{
"id": "__actions_checkout",
"if": {
"type": 3,
"expr": "success()"
},
"uses": "actions/checkout@v3"
},
{
"id": "__run",
"if": {
"type": 3,
"expr": "success()"
},
"continue-on-error": true,
"run": "echo hi"
}
]
},
{
"type": "job",
"id": "build2",
"name": "build2",
"if": {
"type": 3,
"expr": "success()"
},
"concurrency": {
"type": 3,
"expr": "format('ci-{0}', github.ref)"
},
"runs-on": "linux"
},
{
"type": "job",
"id": "build3",
"name": "build3",
"if": {
"type": 3,
"expr": "success()"
},
"concurrency": "staging",
"runs-on": "linux"
},
{
"type": "job",
"id": "build4",
"name": "build4",
"if": {
"type": 3,
"expr": "success()"
},
"concurrency": {
"type": 2,
"map": [
{
"Key": "group",
"Value": "ref"
},
{
"Key": "cancel-in-progress",
"Value": {
"type": 3,
"expr": "github.ref"
}
}
]
},
"runs-on": "macos-latest"
}
]
}
+20
View File
@@ -0,0 +1,20 @@
include-source: false # Drop file/line/col from output
---
on: push
jobs:
build:
runs-on: ubuntu-latest
steps:
# Purposeful typo in run
- runn: echo hi
---
{
"errors": [
{
"Message": ".github/workflows/error.yml (Line: 7, Col: 9): Unexpected value 'runn'"
},
{
"Message": ".github/workflows/error.yml (Line: 7, Col: 9): There's not enough info to determine what you meant. Add one of these properties: run, shell, uses, with, working-directory"
}
]
}
@@ -0,0 +1,18 @@
include-source: false # Drop file/line/col from output
skip:
- TypeScript
---
on: push
jobs:
bad-anchor-tag:
runs-on: ubuntu-latest
steps:
- run: &echo hi
---
{
"errors": [
{
"Message": ".github/workflows/errors-anchor-tag.yml: Anchors are not currently supported. Remove the anchor 'echo'"
}
]
}
@@ -0,0 +1,16 @@
include-source: false # Drop file/line/col from output
---
on: push
jobs:
build:
runs-on: ubuntu-latest
steps:
- run: echo ${{ }}
---
{
"errors": [
{
"Message": ".github/workflows/errors-empty-expression.yml (Line: 6, Col: 14): An expression was expected"
}
]
}
@@ -0,0 +1,21 @@
include-source: false # Drop file/line/col from output
---
name: Mixed String Expr ${{ format('hello {0}', 'world') }}
on:
${{ format('expression-mapping-key {0}', 'as-key') }}:
jobs:
${{ format('hello {0}', 'world') }}
---
{
"errors": [
{
"Message": ".github/workflows/errors-expression-not-allowed.yml (Line: 1, Col: 7): A template expression is not allowed in this context"
},
{
"Message": ".github/workflows/errors-expression-not-allowed.yml (Line: 3, Col: 3): A template expression is not allowed in this context"
},
{
"Message": ".github/workflows/errors-expression-not-allowed.yml (Line: 5, Col: 3): A template expression is not allowed in this context"
}
]
}
@@ -0,0 +1,16 @@
include-source: false # Drop file/line/col from output
---
on: push
jobs:
build:
runs-on: ubuntu-latest
steps:
- run: echo ${{ github.event_name
---
{
"errors": [
{
"Message": ".github/workflows/errors-expression-not-closed.yml (Line: 6, Col: 14): The expression is not closed. An unescaped ${{ sequence was found, but the closing }} sequence was not found."
}
]
}
@@ -0,0 +1,79 @@
include-source: false # Drop file/line/col from output
skip:
- TypeScript
---
on: push
jobs:
build:
runs-on: ubuntu-latest
concurrency: ${{ secrets.foo #no closing brace
steps:
- run: echo hi
build2:
runs-on: ubuntu-latest
concurrency: ${{ secrets.foo }}
steps:
- run: echo hi
build3:
runs-on: ubuntu-latest
concurrency: ${{ }} #empty expression
steps:
- run: echo hi
build4:
if: ${{ env == 5 }} #env not defined
runs-on: linux
steps:
- run: echo hi
build5:
if: ${{ "0xFZ" }}
runs-on: linux
steps:
- run: echo hi
build6:
if: ${{ withJson() }} #not real function
runs-on: linux
steps:
- run: echo hi
build7:
if: ${{ foo" }} #missing starting quotation
runs-on: linux
steps:
- run: echo hi
build8:
runs-on: linux
cancel-timeout-minutes: ${{ "0x" }} #Not a number
steps:
- run: echo hi
---
{
"errors": [
{
"Message": ".github/workflows/errors-expressions.yml (Line: 5, Col: 18): The expression is not closed. An unescaped ${{ sequence was found, but the closing }} sequence was not found."
},
{
"Message": ".github/workflows/errors-expressions.yml (Line: 10, Col: 18): Unrecognized named-value: 'secrets'. Located at position 1 within expression: secrets.foo"
},
{
"Message": ".github/workflows/errors-expressions.yml (Line: 15, Col: 18): An expression was expected"
},
{
"Message": ".github/workflows/errors-expressions.yml (Line: 19, Col: 9): Unrecognized named-value: 'env'. Located at position 1 within expression: env == 5"
},
{
"Message": ".github/workflows/errors-expressions.yml (Line: 24, Col: 9): Unexpected symbol: '\"0xFZ\"'. Located at position 1 within expression: \"0xFZ\""
},
{
"Message": ".github/workflows/errors-expressions.yml (Line: 29, Col: 9): Unrecognized function: 'withJson'. Located at position 1 within expression: withJson()"
},
{
"Message": ".github/workflows/errors-expressions.yml (Line: 34, Col: 9): Unexpected symbol: 'foo\"'. Located at position 1 within expression: foo\""
},
{
"Message": ".github/workflows/errors-expressions.yml (Line: 40, Col: 29): Unexpected symbol: '\"0x\"'. Located at position 1 within expression: \"0x\""
},
{
"Message": ".github/workflows/errors-expressions.yml (Line: 40, Col: 29): Unexpected value '${{ \"0x\" }}'"
}
]
}
@@ -0,0 +1,20 @@
include-source: false # Drop file/line/col from output
---
on: push
permissions:
contents: invalid
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- run: echo hi
continue-on-error: true
---
{
"errors": [
{
"Message": ".github/workflows/errors-invalid-permissions.yml (Line: 3, Col: 13): Unexpected value 'invalid'"
}
]
}
@@ -0,0 +1,19 @@
include-source: false # Drop file/line/col from output
skip:
- TypeScript
---
on: push
jobs:
build:
runs-on: ubuntu-latest
concurrency: ${{ secrets.foo }}
steps:
- run: echo hi
---
{
"errors": [
{
"Message": ".github/workflows/errors-job-concurrency.yml (Line: 5, Col: 18): Unrecognized named-value: 'secrets'. Located at position 1 within expression: secrets.foo"
}
]
}
@@ -0,0 +1,18 @@
include-source: false # Drop file/line/col from output
---
name: CI
on:
push:
jobs:
"":
runs-on: ubuntu-latest
steps:
- run: echo hi
---
{
"errors": [
{
"Message": ".github/workflows/errors-job-id-empty.yml (Line: 5, Col: 3): Unexpected value ''"
}
]
}
@@ -0,0 +1,67 @@
include-source: false # Drop file/line/col from output
---
name: CI
on:
push:
jobs:
my.job:
runs-on: ubuntu-latest
steps:
- run: echo hi
my%job:
runs-on: ubuntu-latest
steps:
- run: echo hi
my^job:
runs-on: ubuntu-latest
steps:
- run: echo hi
.myjob:
runs-on: ubuntu-latest
steps:
- run: echo hi
0myjob:
runs-on: ubuntu-latest
steps:
- run: echo hi
" myjob":
runs-on: ubuntu-latest
steps:
- run: echo hi
" ":
runs-on: ubuntu-latest
steps:
- run: echo hi
-myjob:
runs-on: ubuntu-latest
steps:
- run: echo hi
---
{
"errors": [
{
"Message": ".github/workflows/errors-job-id-format.yml (Line: 5, Col: 3): The identifier 'my.job' is invalid. IDs may only contain alphanumeric characters, '_', and '-'. IDs must start with a letter or '_' and and must be less than 100 characters."
},
{
"Message": ".github/workflows/errors-job-id-format.yml (Line: 9, Col: 3): The identifier 'my%job' is invalid. IDs may only contain alphanumeric characters, '_', and '-'. IDs must start with a letter or '_' and and must be less than 100 characters."
},
{
"Message": ".github/workflows/errors-job-id-format.yml (Line: 13, Col: 3): The identifier 'my^job' is invalid. IDs may only contain alphanumeric characters, '_', and '-'. IDs must start with a letter or '_' and and must be less than 100 characters."
},
{
"Message": ".github/workflows/errors-job-id-format.yml (Line: 17, Col: 3): The identifier '.myjob' is invalid. IDs may only contain alphanumeric characters, '_', and '-'. IDs must start with a letter or '_' and and must be less than 100 characters."
},
{
"Message": ".github/workflows/errors-job-id-format.yml (Line: 21, Col: 3): The identifier '0myjob' is invalid. IDs may only contain alphanumeric characters, '_', and '-'. IDs must start with a letter or '_' and and must be less than 100 characters."
},
{
"Message": ".github/workflows/errors-job-id-format.yml (Line: 25, Col: 3): The identifier ' myjob' is invalid. IDs may only contain alphanumeric characters, '_', and '-'. IDs must start with a letter or '_' and and must be less than 100 characters."
},
{
"Message": ".github/workflows/errors-job-id-format.yml (Line: 29, Col: 3): The identifier ' ' is invalid. IDs may only contain alphanumeric characters, '_', and '-'. IDs must start with a letter or '_' and and must be less than 100 characters."
},
{
"Message": ".github/workflows/errors-job-id-format.yml (Line: 33, Col: 3): The identifier '-myjob' is invalid. IDs may only contain alphanumeric characters, '_', and '-'. IDs must start with a letter or '_' and and must be less than 100 characters."
}
]
}
@@ -0,0 +1,40 @@
include-source: false # Drop file/line/col from output
---
name: CI
on:
push:
jobs:
# Valid
_:
runs-on: ubuntu-latest
steps:
- run: echo hi
_a:
runs-on: ubuntu-latest
steps:
- run: echo hi
a__:
runs-on: ubuntu-latest
steps:
- run: echo hi
# Invalid
__:
runs-on: ubuntu-latest
steps:
- run: echo hi
__a:
runs-on: ubuntu-latest
steps:
- run: echo hi
---
{
"errors": [
{
"Message": ".github/workflows/errors-job-id-leading-underscores.yml (Line: 20, Col: 3): The identifier '__' is invalid. IDs starting with '__' are reserved."
},
{
"Message": ".github/workflows/errors-job-id-leading-underscores.yml (Line: 24, Col: 3): The identifier '__a' is invalid. IDs starting with '__' are reserved."
}
]
}
@@ -0,0 +1,22 @@
include-source: false # Drop file/line/col from output
---
name: CI
on:
push:
jobs:
my-job:
runs-on: ubuntu-latest
steps:
- run: echo hi
MY-JOB:
runs-on: ubuntu-latest
steps:
- run: echo hi
---
{
"errors": [
{
"Message": ".github/workflows/errors-job-id-unique.yml (Line: 9, Col: 3): 'MY-JOB' is already defined"
}
]
}
@@ -0,0 +1,34 @@
include-source: false # Drop file/line/col from output
---
on: push
jobs:
one:
runs-on: ubuntu-latest
steps:
- run: echo hello
two:
needs:
- one
- three
runs-on: ubuntu-latest
steps:
- run: echo hello
three:
needs: two
runs-on: ubuntu-latest
steps:
- run: echo hello
---
{
"errors": [
{
"Message": ".github/workflows/errors-job-needs-cycle.yml (Line: 12, Col: 9): Job 'two' depends on job 'three' which creates a cycle in the dependency graph."
},
{
"Message": ".github/workflows/errors-job-needs-cycle.yml (Line: 18, Col: 12): Job 'three' depends on job 'two' which creates a cycle in the dependency graph."
}
]
}
@@ -0,0 +1,24 @@
include-source: false # Drop file/line/col from output
---
on: push
jobs:
one:
needs: two
runs-on: ubuntu-latest
steps:
- run: echo hello
two:
needs: one
runs-on: ubuntu-latest
steps:
- run: echo hello
---
{
"errors": [
{
"Message": ".github/workflows/errors-job-needs-no-start-node.yml (Line: 4, Col: 3): The workflow must contain at least one job with no dependencies."
}
]
}
@@ -0,0 +1,37 @@
include-source: false # Drop file/line/col from output
---
on: push
jobs:
one:
needs: two
runs-on: ubuntu-latest
steps:
- run: echo hello
three:
needs:
- four
- five
runs-on: ubuntu-latest
steps:
- run: echo hello
six:
runs-on: ubuntu-latest
steps:
- run: echo hello
---
{
"errors": [
{
"Message": ".github/workflows/errors-job-needs-unknown-job.yml (Line: 5, Col: 12): Job 'one' depends on unknown job 'two'."
},
{
"Message": ".github/workflows/errors-job-needs-unknown-job.yml (Line: 12, Col: 9): Job 'three' depends on unknown job 'four'."
},
{
"Message": ".github/workflows/errors-job-needs-unknown-job.yml (Line: 13, Col: 9): Job 'three' depends on unknown job 'five'."
}
]
}
@@ -0,0 +1,15 @@
include-source: false # Drop file/line/col from output
---
on: push
jobs:
build:
runs-on: ubuntu-latest
uses: ./.github/workflows/foo.yml
---
{
"errors": [
{
"Message": ".github/workflows/errors-job-runs-on-and-uses.yml (Line: 5, Col: 5): Unexpected value 'uses'"
}
]
}
@@ -0,0 +1,35 @@
include-source: false # Drop file/line/col from output
skip:
- TypeScript
---
on: push
jobs:
build:
runs-on:
group: ent/org/my-group
steps:
- run: echo hi
build2:
runs-on:
group: asdf/my-group
steps:
- run: echo hi
build3:
runs-on:
group: ent/
steps:
- run: echo hi
---
{
"errors": [
{
"Message": ".github/workflows/errors-job-runs-on-group-invalid-prefix.yml (Line: 5, Col: 14): Invalid runs-on group name 'ent/org/my-group'. Please use 'organization/' or 'enterprise/' prefix to target a single runner group."
},
{
"Message": ".github/workflows/errors-job-runs-on-group-invalid-prefix.yml (Line: 10, Col: 14): Invalid runs-on group name 'asdf/my-group'. Please use 'organization/' or 'enterprise/' prefix to target a single runner group."
},
{
"Message": ".github/workflows/errors-job-runs-on-group-invalid-prefix.yml (Line: 15, Col: 14): Invalid runs-on group name 'ent/'."
}
]
}
@@ -0,0 +1,15 @@
include-source: false # Drop file/line/col from output
---
on: push
jobs:
build: # missing runs-on
steps:
- run: echo hi
---
{
"errors": [
{
"Message": ".github/workflows/errors-job-runs-on-missing.yml (Line: 4, Col: 5): Required property is missing: runs-on"
}
]
}
@@ -0,0 +1,12 @@
include-source: false # Drop file/line/col from output
---
on: push
jobs: {}
---
{
"errors": [
{
"Message": ".github/workflows/errors-jobs-at-least-one.yml (Line: 2, Col: 7): The workflow must contain at least one job with no dependencies."
}
]
}
@@ -0,0 +1,11 @@
include-source: false # Drop file/line/col from output
---
on: push
---
{
"errors": [
{
"Message": ".github/workflows/errors-jobs-missing.yml (Line: 1, Col: 1): Required property is missing: jobs"
}
]
}
@@ -0,0 +1,56 @@
include-source: false # Drop file/line/col from output
skip:
- TypeScript
---
on: push
jobs:
test_matrix:
strategy:
matrix:
complex:
- key-1:
nested-1:
nested-nested-1:
- key-2:
nested-2:
nested-nested-2:
- key-3:
nested-3:
nested-nested-3:
- key-4:
nested-4:
nested-nested-4:
- key-5:
nested-5:
nested-nested-5:
- key-6:
nested-6:
nested-nested-6:
- key-7:
nested-7:
nested-nested-7:
- key-8:
nested-8:
nested-nested-8:
- key-9:
nested-9:
nested-nested-9:
- key-10:
nested-10:
nested-nested-10:
- key-11:
nested-11:
nested-nested-11:
- key-12:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- run: echo Building...
---
{
"errors": [
{
"Message": ".github/workflows/errors-matrix-max-depth.yml: Maximum object depth exceeded"
}
]
}
@@ -0,0 +1,23 @@
include-source: false # Drop file/line/col from output
max-depth: 5
skip:
- TypeScript
---
on: push
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: actions/setup-node@v2
with:
node-version: 14 # Depth = 5, equals max-depth, raises error
- run: echo Building...
---
{
"errors": [
{
"Message": ".github/workflows/errors-max-depth.yml: Maximum object depth exceeded"
}
]
}
@@ -0,0 +1,20 @@
include-source: false # Drop file/line/col from output
max-file-size: 124
skip:
- TypeScript
---
on: push
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- run: echo Building...
---
{
"errors": [
{
"Message": ".github/workflows/errors-max-file-size.yml: The maximum file size of 124 characters has been exceeded"
}
]
}
@@ -0,0 +1,35 @@
include-source: false # Drop file/line/col from output
skip:
- Go
- TypeScript
max-job-limit: 8
---
on: push
jobs:
deploy:
uses: contoso/templates/.github/workflows/deploy.yml@v1
deploy1:
uses: contoso/templates/.github/workflows/deploy.yml@v1
deploy2:
uses: contoso/templates/.github/workflows/deploy.yml@v1
---
contoso/templates/.github/workflows/deploy.yml@v1
---
on: workflow_call
jobs:
deploy:
runs-on: ubuntu-latest
steps:
- run: echo hi
deploy2:
runs-on: ubuntu-latest
steps:
- run: echo hi
---
{
"errors": [
{
"Message": "The workflow may not contain more than 8 jobs"
}
]
}
@@ -0,0 +1,21 @@
include-source: false # Drop file/line/col from output
max-result-size: 768
skip:
- TypeScript
---
on: push
jobs:
job1:
runs-on: ubuntu-latest
steps:
- run: echo Deploying 1...
- run: echo Deploying 2...
- run: echo Deploying 3...
---
{
"errors": [
{
"Message": ".github/workflows/errors-max-result-size.yml: Maximum object size exceeded"
}
]
}
@@ -0,0 +1,27 @@
include-source: false # Drop file/line/col from output
---
on:
push:
branches:
- main
workflow_call:
inputs:
app_name:
required: true
type: Datetime
secrets:
shh:
required: true
jobs:
my-job:
runs-on: ubuntu-latest
steps:
- run: echo hi
---
{
"errors": [
{
"Message": ".github/workflows/errors-on-workflow_call-input-type-missing.yml (Line: 9, Col: 15): Unexpected value 'Datetime'"
}
]
}
@@ -0,0 +1,28 @@
include-source: false # Drop file/line/col from output
---
on:
push:
branches:
- main
workflow_call:
inputs:
app_name:
required: true
type: string
deprecationMessage: blah blah
secrets:
shh:
required: true
jobs:
my-job:
runs-on: ubuntu-latest
steps:
- run: echo hi
---
{
"errors": [
{
"Message": ".github/workflows/errors-on-workflow_call-input-unexpected-property.yml (Line: 10, Col: 9): Unexpected value 'deprecationMessage'"
}
]
}
@@ -0,0 +1,23 @@
include-source: false # Drop file/line/col from output
---
on:
push:
branches:
- main
workflow_call:
outputs:
output1:
description: foo
jobs:
my-job:
runs-on: ubuntu-latest
steps:
- run: echo hi
---
{
"errors": [
{
"Message": ".github/workflows/errors-on-workflow_call-output.yml (Line: 8, Col: 9): Required property is missing: value"
}
]
}
@@ -0,0 +1,18 @@
include-source: false # Drop file/line/col from output
skip:
- TypeScript
---
on: push
jobs:
parse-bool-error:
runs-on: !!bool test
steps:
- uses: actions/checkout@v2
---
{
"errors": [
{
"Message": ".github/workflows/errors-parse-boolean.yml: The value 'test' on line 4 and column 14 is invalid for the type 'tag:yaml.org,2002:bool'"
}
]
}
@@ -0,0 +1,18 @@
include-source: false # Drop file/line/col from output
skip:
- TypeScript
---
on: push
jobs:
parse-float-error:
runs-on: !!float test
steps:
- uses: actions/checkout@v2
---
{
"errors": [
{
"Message": ".github/workflows/errors-parse-float.yml: The value 'test' on line 4 and column 14 is invalid for the type 'tag:yaml.org,2002:float'"
}
]
}
@@ -0,0 +1,18 @@
include-source: false # Drop file/line/col from output
skip:
- TypeScript
---
on: push
jobs:
parse-int-error:
runs-on: !!int test
steps:
- uses: actions/checkout@v2
---
{
"errors": [
{
"Message": ".github/workflows/errors-parse-integer.yml: The value 'test' on line 4 and column 14 is invalid for the type 'tag:yaml.org,2002:int'"
}
]
}
@@ -0,0 +1,36 @@
include-source: false # Drop file/line/col from output
---
on:
workflow_call: # missing 'type'
inputs:
username:
description: 'A username passed from the caller workflow'
default: 'john-doe'
jobs:
build:
runs-on: self-hosted
concurrency: # missing 'group'
cancel-in-progress: true
steps:
- run: echo Hi
build2:
runs-on: self-hosted
environment: # missing 'name'
url: https://github.com
steps:
- run: echo Hi
---
{
"errors": [
{
"Message": ".github/workflows/errors-required-property-missing.yml (Line: 5, Col: 9): Required property is missing: type"
},
{
"Message": ".github/workflows/errors-required-property-missing.yml (Line: 11, Col: 7): Required property is missing: group"
},
{
"Message": ".github/workflows/errors-required-property-missing.yml (Line: 17, Col: 7): Required property is missing: name"
}
]
}
@@ -0,0 +1,31 @@
include-source: false # Drop file/line/col from output
skip:
- Go
- TypeScript
---
on: push
jobs:
deploy:
uses: contoso/templates/.github/workflows/deploy.yml@v1
---
contoso/templates/.github/workflows/deploy.yml@v1
---
on:
workflow_call:
inputs:
foo:
required: true
type: string
jobs:
job1:
runs-on: ubuntu-latest
steps:
- run: echo hi
---
{
"errors": [
{
"Message": ".github/workflows/errors-reusable-workflow-job-inputs-required.yml (Line: 4, Col: 11): Input foo is required, but not provided while calling."
}
]
}
@@ -0,0 +1,38 @@
include-source: false # Drop file/line/col from output
skip:
- Go
- TypeScript
---
on: push
jobs:
deploy:
uses: contoso/templates/.github/workflows/deploy.yml@v1
with:
some-boolean: not-a-boolean
some-number: not-a-number
---
contoso/templates/.github/workflows/deploy.yml@v1
---
on:
workflow_call:
inputs:
some-boolean:
type: boolean
some-number:
type: number
jobs:
job1:
runs-on: ubuntu-latest
steps:
- run: echo hi
---
{
"errors": [
{
"Message": ".github/workflows/errors-reusable-workflow-job-inputs-type-mismatch.yml (Line: 6, Col: 21): Unexpected value 'not-a-boolean'"
},
{
"Message": ".github/workflows/errors-reusable-workflow-job-inputs-type-mismatch.yml (Line: 7, Col: 20): Unexpected value 'not-a-number'"
}
]
}
@@ -0,0 +1,28 @@
include-source: false # Drop file/line/col from output
skip:
- Go
- TypeScript
---
on: push
jobs:
deploy:
uses: contoso/templates/.github/workflows/deploy.yml@v1
with:
foo: bar
---
contoso/templates/.github/workflows/deploy.yml@v1
---
on: workflow_call
jobs:
job1:
runs-on: ubuntu-latest
steps:
- run: echo hi
---
{
"errors": [
{
"Message": ".github/workflows/errors-reusable-workflow-job-inputs-undefined.yml (Line: 6, Col: 12): Invalid input, foo is not defined in the referenced workflow."
}
]
}
@@ -0,0 +1,41 @@
include-source: false # Drop file/line/col from output
skip:
- Go
- TypeScript
max-nested-reusable-workflows-depth: 2
---
on: push
jobs:
deploy-level-0:
uses: contoso/templates/.github/workflows/deploy-level-1.yml@v1
---
contoso/templates/.github/workflows/deploy-level-1.yml@v1
---
on: workflow_call
jobs:
deploy-level-1:
uses: contoso/templates/.github/workflows/deploy-level-2.yml@v1
---
contoso/templates/.github/workflows/deploy-level-2.yml@v1
---
on: workflow_call
jobs:
deploy-level-2:
uses: contoso/templates/.github/workflows/deploy-level-3.yml@v1
---
contoso/templates/.github/workflows/deploy-level-3.yml@v1
---
on: workflow_call
jobs:
deploy-level-3:
runs-on: ubuntu-latest
steps:
- run: echo hi
---
{
"errors": [
{
"Message": "Nested reusable workflow depth exceeded 2."
}
]
}
@@ -0,0 +1,39 @@
include-source: false # Drop file/line/col from output
skip:
- Go
- TypeScript
---
permissions:
actions: write
on: push
jobs:
deploy-level-0:
uses: contoso/templates/.github/workflows/deploy-level-1.yml@v1
---
contoso/templates/.github/workflows/deploy-level-1.yml@v1
---
on: workflow_call
jobs:
deploy-level-1:
permissions:
actions: read
uses: contoso/templates/.github/workflows/deploy-level-2.yml@v1
---
contoso/templates/.github/workflows/deploy-level-2.yml@v1
---
on: workflow_call
jobs:
deploy-level-2:
permissions:
actions: write
runs-on: ubuntu-latest
steps:
- run: echo hi
---
{
"errors": [
{
"Message": "contoso/templates/.github/workflows/deploy-level-1.yml@v1 (Line: 3, Col: 3): Error calling workflow 'contoso/templates/.github/workflows/deploy-level-2.yml@v1'. The nested job 'deploy-level-2' is requesting 'actions: write', but is only allowed 'actions: read'."
}
]
}
@@ -0,0 +1,39 @@
include-source: false # Drop file/line/col from output
skip:
- Go
- TypeScript
---
permissions:
actions: write
on: push
jobs:
deploy-level-0:
uses: contoso/templates/.github/workflows/deploy-level-1.yml@v1
---
contoso/templates/.github/workflows/deploy-level-1.yml@v1
---
permissions:
actions: read
on: workflow_call
jobs:
deploy-level-1:
uses: contoso/templates/.github/workflows/deploy-level-2.yml@v1
---
contoso/templates/.github/workflows/deploy-level-2.yml@v1
---
on: workflow_call
jobs:
deploy-level-2:
permissions:
actions: write
runs-on: ubuntu-latest
steps:
- run: echo hi
---
{
"errors": [
{
"Message": "contoso/templates/.github/workflows/deploy-level-1.yml@v1 (Line: 5, Col: 3): Error calling workflow 'contoso/templates/.github/workflows/deploy-level-2.yml@v1'. The nested job 'deploy-level-2' is requesting 'actions: write', but is only allowed 'actions: read'."
}
]
}
@@ -0,0 +1,39 @@
include-source: false # Drop file/line/col from output
skip:
- Go
- TypeScript
---
permissions:
actions: write
on: push
jobs:
deploy-level-0:
uses: contoso/templates/.github/workflows/deploy-level-1.yml@v1
---
contoso/templates/.github/workflows/deploy-level-1.yml@v1
---
on: workflow_call
jobs:
deploy-level-1:
permissions:
actions: read
uses: contoso/templates/.github/workflows/deploy-level-2.yml@v1
---
contoso/templates/.github/workflows/deploy-level-2.yml@v1
---
on: workflow_call
permissions:
actions: write
jobs:
deploy-level-2:
runs-on: ubuntu-latest
steps:
- run: echo hi
---
{
"errors": [
{
"Message": "contoso/templates/.github/workflows/deploy-level-1.yml@v1 (Line: 3, Col: 3): Error calling workflow 'contoso/templates/.github/workflows/deploy-level-2.yml@v1'. The workflow 'contoso/templates/.github/workflows/deploy-level-2.yml@v1' is requesting 'actions: write', but is only allowed 'actions: read'."
}
]
}
@@ -0,0 +1,39 @@
include-source: false # Drop file/line/col from output
skip:
- Go
- TypeScript
---
permissions:
actions: write
on: push
jobs:
deploy-level-0:
uses: contoso/templates/.github/workflows/deploy-level-1.yml@v1
---
contoso/templates/.github/workflows/deploy-level-1.yml@v1
---
permissions:
actions: read
on: workflow_call
jobs:
deploy-level-1:
uses: contoso/templates/.github/workflows/deploy-level-2.yml@v1
---
contoso/templates/.github/workflows/deploy-level-2.yml@v1
---
on: workflow_call
permissions:
actions: write
jobs:
deploy-level-2:
runs-on: ubuntu-latest
steps:
- run: echo hi
---
{
"errors": [
{
"Message": "contoso/templates/.github/workflows/deploy-level-1.yml@v1 (Line: 5, Col: 3): Error calling workflow 'contoso/templates/.github/workflows/deploy-level-2.yml@v1'. The workflow 'contoso/templates/.github/workflows/deploy-level-2.yml@v1' is requesting 'actions: write', but is only allowed 'actions: read'."
}
]
}
@@ -0,0 +1,30 @@
include-source: false # Drop file/line/col from output
skip:
- Go
- TypeScript
---
on: push
jobs:
deploy:
uses: contoso/templates/.github/workflows/deploy.yml@v1
---
contoso/templates/.github/workflows/deploy.yml@v1
---
on:
workflow_call:
secrets:
shh:
required: true
jobs:
job1:
runs-on: ubuntu-latest
steps:
- run: echo hi
---
{
"errors": [
{
"Message": ".github/workflows/errors-reusable-workflow-job-secrets-required.yml (Line: 4, Col: 11): Secret shh is required, but not provided while calling."
}
]
}
@@ -0,0 +1,28 @@
include-source: false # Drop file/line/col from output
skip:
- Go
- TypeScript
---
on: push
jobs:
deploy:
uses: contoso/templates/.github/workflows/deploy.yml@v1
secrets:
foo: bar
---
contoso/templates/.github/workflows/deploy.yml@v1
---
on: workflow_call
jobs:
job1:
runs-on: ubuntu-latest
steps:
- run: echo hi
---
{
"errors": [
{
"Message": ".github/workflows/errors-reusable-workflow-job-secrets-undefined.yml (Line: 6, Col: 12): Invalid secret, foo is not defined in the referenced workflow."
}
]
}
@@ -0,0 +1,44 @@
include-source: false # Drop file/line/col from output
skip:
- Go
- TypeScript
---
on: push
jobs:
build:
runs-on: ubuntu-latest
steps:
- run: echo hi
deploy:
needs: build
uses: contoso/templates/.github/workflows/deploy.yml@v1
with:
app_name: my app
secrets: inhrit # typo
---
contoso/templates/.github/workflows/deploy.yml@v1
---
on:
workflow_call:
inputs:
app_name:
required: true
type: string
secrets:
shh:
required: true
jobs:
job1:
runs-on: ubuntu-latest
outputs:
output1: ${{ steps.step1.outputs.test }}
steps:
- run: echo \""::set-output name=test::hello\""
---
{
"errors": [
{
"Message": ".github/workflows/errors-reusable-workflow-job-secrets.yml (Line: 12, Col: 14): Unexpected value 'inhrit'"
}
]
}
@@ -0,0 +1,30 @@
include-source: false # Drop file/line/col from output
max-result-size: 2048
skip:
- TypeScript
- Go
---
on: push
jobs:
build-0: { uses: contoso/templates/.github/workflows/deploy.yml@v1 }
build-1: { uses: contoso/templates/.github/workflows/deploy.yml@v1 }
---
contoso/templates/.github/workflows/deploy.yml@v1
---
on: workflow_call
jobs:
job1:
runs-on: ubuntu-latest
steps:
- run: echo Deploying...
---
{
"errors": [
{
"Message": "contoso/templates/.github/workflows/deploy.yml@v1: Maximum object size exceeded"
},
{
"Message": "Unexpected type '' encountered while reading 'root'. The type 'MappingToken' was expected."
}
]
}
@@ -0,0 +1,29 @@
include-source: false # Drop file/line/col from output
skip:
- Go
- TypeScript
permissions-policy: LimitedRead
---
on: push
jobs:
deploy:
uses: contoso/templates/.github/workflows/deploy.yml@v1
---
contoso/templates/.github/workflows/deploy.yml@v1
---
on: workflow_call
jobs:
deploy:
permissions:
actions: write
runs-on: ubuntu-latest
steps:
- run: echo hi
---
{
"errors": [
{
"Message": ".github/workflows/errors-reusable-workflow-permissions-not-allowed-job-level-from-caller-default.yml (Line: 3, Col: 3): Error calling workflow 'contoso/templates/.github/workflows/deploy.yml@v1'. The nested job 'deploy' is requesting 'actions: write', but is only allowed 'actions: none'."
}
]
}
@@ -0,0 +1,30 @@
include-source: false # Drop file/line/col from output
skip:
- Go
- TypeScript
---
on: push
jobs:
deploy:
permissions:
actions: read
uses: contoso/templates/.github/workflows/deploy.yml@v1
---
contoso/templates/.github/workflows/deploy.yml@v1
---
on: workflow_call
jobs:
deploy:
permissions:
actions: write
runs-on: ubuntu-latest
steps:
- run: echo hi
---
{
"errors": [
{
"Message": ".github/workflows/errors-reusable-workflow-permissions-not-allowed-job-level-from-caller-job-level.yml (Line: 3, Col: 3): Error calling workflow 'contoso/templates/.github/workflows/deploy.yml@v1'. The nested job 'deploy' is requesting 'actions: write', but is only allowed 'actions: read'."
}
]
}
@@ -0,0 +1,30 @@
include-source: false # Drop file/line/col from output
skip:
- Go
- TypeScript
---
on: push
permissions:
actions: read
jobs:
deploy:
uses: contoso/templates/.github/workflows/deploy.yml@v1
---
contoso/templates/.github/workflows/deploy.yml@v1
---
on: workflow_call
jobs:
deploy:
permissions:
actions: write
runs-on: ubuntu-latest
steps:
- run: echo hi
---
{
"errors": [
{
"Message": ".github/workflows/errors-reusable-workflow-permissions-not-allowed-job-level-from-caller-workflow-level.yml (Line: 5, Col: 3): Error calling workflow 'contoso/templates/.github/workflows/deploy.yml@v1'. The nested job 'deploy' is requesting 'actions: write', but is only allowed 'actions: read'."
}
]
}
@@ -0,0 +1,32 @@
include-source: false # Drop file/line/col from output
skip:
- Go
- TypeScript
permissions-policy: LimitedRead
---
on: push
jobs:
deploy:
permissions:
actions: read
uses: a/b/.github/workflows/c.yml@v1
---
a/b/.github/workflows/c.yml@v1
---
on: workflow_call
jobs:
deploy:
name: Deploy 1
permissions:
actions: write
runs-on: ubuntu-latest
steps:
- run: echo hi
---
{
"errors": [
{
"Message": ".github/workflows/errors-reusable-workflow-permissions-not-allowed-request-actions-write.yml (Line: 3, Col: 3): Error calling workflow 'a/b/.github/workflows/c.yml@v1'. The nested job 'Deploy 1' is requesting 'actions: write', but is only allowed 'actions: read'."
}
]
}
@@ -0,0 +1,32 @@
include-source: false # Drop file/line/col from output
skip:
- Go
- TypeScript
permissions-policy: LimitedRead
---
on: push
jobs:
deploy:
permissions:
checks: read
uses: a/b/.github/workflows/c.yml@v1
---
a/b/.github/workflows/c.yml@v1
---
on: workflow_call
jobs:
deploy:
name: Deploy 1
permissions:
checks: write
runs-on: ubuntu-latest
steps:
- run: echo hi
---
{
"errors": [
{
"Message": ".github/workflows/errors-reusable-workflow-permissions-not-allowed-request-checks-write.yml (Line: 3, Col: 3): Error calling workflow 'a/b/.github/workflows/c.yml@v1'. The nested job 'Deploy 1' is requesting 'checks: write', but is only allowed 'checks: read'."
}
]
}
@@ -0,0 +1,32 @@
include-source: false # Drop file/line/col from output
skip:
- Go
- TypeScript
permissions-policy: LimitedRead
---
on: push
jobs:
deploy:
permissions:
contents: read
uses: a/b/.github/workflows/c.yml@v1
---
a/b/.github/workflows/c.yml@v1
---
on: workflow_call
jobs:
deploy:
name: Deploy 1
permissions:
contents: write
runs-on: ubuntu-latest
steps:
- run: echo hi
---
{
"errors": [
{
"Message": ".github/workflows/errors-reusable-workflow-permissions-not-allowed-request-contents-write.yml (Line: 3, Col: 3): Error calling workflow 'a/b/.github/workflows/c.yml@v1'. The nested job 'Deploy 1' is requesting 'contents: write', but is only allowed 'contents: read'."
}
]
}
@@ -0,0 +1,32 @@
include-source: false # Drop file/line/col from output
skip:
- Go
- TypeScript
permissions-policy: LimitedRead
---
on: push
jobs:
deploy:
permissions:
deployments: read
uses: a/b/.github/workflows/c.yml@v1
---
a/b/.github/workflows/c.yml@v1
---
on: workflow_call
jobs:
deploy:
name: Deploy 1
permissions:
deployments: write
runs-on: ubuntu-latest
steps:
- run: echo hi
---
{
"errors": [
{
"Message": ".github/workflows/errors-reusable-workflow-permissions-not-allowed-request-deployments-write.yml (Line: 3, Col: 3): Error calling workflow 'a/b/.github/workflows/c.yml@v1'. The nested job 'Deploy 1' is requesting 'deployments: write', but is only allowed 'deployments: read'."
}
]
}
@@ -0,0 +1,32 @@
include-source: false # Drop file/line/col from output
skip:
- Go
- TypeScript
permissions-policy: LimitedRead
---
on: push
jobs:
deploy:
permissions:
discussions: read
uses: a/b/.github/workflows/c.yml@v1
---
a/b/.github/workflows/c.yml@v1
---
on: workflow_call
jobs:
deploy:
name: Deploy 1
permissions:
discussions: write
runs-on: ubuntu-latest
steps:
- run: echo hi
---
{
"errors": [
{
"Message": ".github/workflows/errors-reusable-workflow-permissions-not-allowed-request-discussions-write.yml (Line: 3, Col: 3): Error calling workflow 'a/b/.github/workflows/c.yml@v1'. The nested job 'Deploy 1' is requesting 'discussions: write', but is only allowed 'discussions: read'."
}
]
}
@@ -0,0 +1,44 @@
include-source: false # Drop file/line/col from output
skip:
- Go
- TypeScript
permissions-policy: LimitedRead
---
on: push
jobs:
deploy:
permissions:
actions: write
checks: write
contents: write
deployments: write
discussions: write
issues: write
packages: write
pages: write
pull-requests: write
repository-projects: write
security-events: write
statuses: write
id-token: none
uses: a/b/.github/workflows/c.yml@v1
---
a/b/.github/workflows/c.yml@v1
---
on: workflow_call
jobs:
deploy:
name: Deploy 1
permissions:
id-token: write
runs-on: ubuntu-latest
steps:
- run: echo hi
---
{
"errors": [
{
"Message": ".github/workflows/errors-reusable-workflow-permissions-not-allowed-request-id-token-write.yml (Line: 3, Col: 3): Error calling workflow 'a/b/.github/workflows/c.yml@v1'. The nested job 'Deploy 1' is requesting 'id-token: write', but is only allowed 'id-token: none'."
}
]
}
@@ -0,0 +1,32 @@
include-source: false # Drop file/line/col from output
skip:
- Go
- TypeScript
permissions-policy: LimitedRead
---
on: push
jobs:
deploy:
permissions:
issues: read
uses: a/b/.github/workflows/c.yml@v1
---
a/b/.github/workflows/c.yml@v1
---
on: workflow_call
jobs:
deploy:
name: Deploy 1
permissions:
issues: write
runs-on: ubuntu-latest
steps:
- run: echo hi
---
{
"errors": [
{
"Message": ".github/workflows/errors-reusable-workflow-permissions-not-allowed-request-issues-write.yml (Line: 3, Col: 3): Error calling workflow 'a/b/.github/workflows/c.yml@v1'. The nested job 'Deploy 1' is requesting 'issues: write', but is only allowed 'issues: read'."
}
]
}
@@ -0,0 +1,32 @@
include-source: false # Drop file/line/col from output
skip:
- Go
- TypeScript
permissions-policy: LimitedRead
---
on: push
jobs:
deploy:
permissions:
packages: read
uses: a/b/.github/workflows/c.yml@v1
---
a/b/.github/workflows/c.yml@v1
---
on: workflow_call
jobs:
deploy:
name: Deploy 1
permissions:
packages: write
runs-on: ubuntu-latest
steps:
- run: echo hi
---
{
"errors": [
{
"Message": ".github/workflows/errors-reusable-workflow-permissions-not-allowed-request-packages-write.yml (Line: 3, Col: 3): Error calling workflow 'a/b/.github/workflows/c.yml@v1'. The nested job 'Deploy 1' is requesting 'packages: write', but is only allowed 'packages: read'."
}
]
}
@@ -0,0 +1,32 @@
include-source: false # Drop file/line/col from output
skip:
- Go
- TypeScript
permissions-policy: LimitedRead
---
on: push
jobs:
deploy:
permissions:
pages: read
uses: a/b/.github/workflows/c.yml@v1
---
a/b/.github/workflows/c.yml@v1
---
on: workflow_call
jobs:
deploy:
name: Deploy 1
permissions:
pages: write
runs-on: ubuntu-latest
steps:
- run: echo hi
---
{
"errors": [
{
"Message": ".github/workflows/errors-reusable-workflow-permissions-not-allowed-request-pages-write.yml (Line: 3, Col: 3): Error calling workflow 'a/b/.github/workflows/c.yml@v1'. The nested job 'Deploy 1' is requesting 'pages: write', but is only allowed 'pages: read'."
}
]
}
@@ -0,0 +1,32 @@
include-source: false # Drop file/line/col from output
skip:
- Go
- TypeScript
permissions-policy: LimitedRead
---
on: push
jobs:
deploy:
permissions:
pull-requests: read
uses: a/b/.github/workflows/c.yml@v1
---
a/b/.github/workflows/c.yml@v1
---
on: workflow_call
jobs:
deploy:
name: Deploy 1
permissions:
pull-requests: write
runs-on: ubuntu-latest
steps:
- run: echo hi
---
{
"errors": [
{
"Message": ".github/workflows/errors-reusable-workflow-permissions-not-allowed-request-pull-requests-write.yml (Line: 3, Col: 3): Error calling workflow 'a/b/.github/workflows/c.yml@v1'. The nested job 'Deploy 1' is requesting 'pull-requests: write', but is only allowed 'pull-requests: read'."
}
]
}
@@ -0,0 +1,31 @@
include-source: false # Drop file/line/col from output
skip:
- Go
- TypeScript
permissions-policy: LimitedRead
# Note, the workflow names are intentionally short so the error message doesn't get truncated too much
---
on: push
jobs:
deploy:
permissions: {}
uses: a/b/.github/workflows/c.yml@v1
---
a/b/.github/workflows/c.yml@v1
---
on: workflow_call
jobs:
deploy:
name: Deploy 1
permissions: read-all
runs-on: ubuntu-latest
steps:
- run: echo hi
---
{
"errors": [
{
"Message": ".github/workflows/errors-reusable-workflow-permissions-not-allowed-request-read-all-allowed-none.yml (Line: 3, Col: 3): Error calling workflow 'a/b/.github/workflows/c.yml@v1'. The nested job 'Deploy 1' is requesting 'actions: read, checks: read, contents: read, deployments: read, discussions: read, issues: read, packages: read, pages: read, pull-requests: read, repository-projects: read, statuses: read, security-events: read, id-token: read', but is only allowed 'actions: none, checks: none, co[...]"
}
]
}
@@ -0,0 +1,32 @@
include-source: false # Drop file/line/col from output
skip:
- Go
- TypeScript
permissions-policy: LimitedRead
---
on: push
jobs:
deploy:
permissions:
repository-projects: read
uses: a/b/.github/workflows/c.yml@v1
---
a/b/.github/workflows/c.yml@v1
---
on: workflow_call
jobs:
deploy:
name: Deploy 1
permissions:
repository-projects: write
runs-on: ubuntu-latest
steps:
- run: echo hi
---
{
"errors": [
{
"Message": ".github/workflows/errors-reusable-workflow-permissions-not-allowed-request-repository-projects-write.yml (Line: 3, Col: 3): Error calling workflow 'a/b/.github/workflows/c.yml@v1'. The nested job 'Deploy 1' is requesting 'repository-projects: write', but is only allowed 'repository-projects: read'."
}
]
}
@@ -0,0 +1,32 @@
include-source: false # Drop file/line/col from output
skip:
- Go
- TypeScript
permissions-policy: LimitedRead
---
on: push
jobs:
deploy:
permissions:
security-events: read
uses: a/b/.github/workflows/c.yml@v1
---
a/b/.github/workflows/c.yml@v1
---
on: workflow_call
jobs:
deploy:
name: Deploy 1
permissions:
security-events: write
runs-on: ubuntu-latest
steps:
- run: echo hi
---
{
"errors": [
{
"Message": ".github/workflows/errors-reusable-workflow-permissions-not-allowed-request-security-events-write.yml (Line: 3, Col: 3): Error calling workflow 'a/b/.github/workflows/c.yml@v1'. The nested job 'Deploy 1' is requesting 'security-events: write', but is only allowed 'security-events: read'."
}
]
}
@@ -0,0 +1,32 @@
include-source: false # Drop file/line/col from output
skip:
- Go
- TypeScript
permissions-policy: LimitedRead
---
on: push
jobs:
deploy:
permissions:
statuses: read
uses: a/b/.github/workflows/c.yml@v1
---
a/b/.github/workflows/c.yml@v1
---
on: workflow_call
jobs:
deploy:
name: Deploy 1
permissions:
statuses: write
runs-on: ubuntu-latest
steps:
- run: echo hi
---
{
"errors": [
{
"Message": ".github/workflows/errors-reusable-workflow-permissions-not-allowed-request-statuses-write.yml (Line: 3, Col: 3): Error calling workflow 'a/b/.github/workflows/c.yml@v1'. The nested job 'Deploy 1' is requesting 'statuses: write', but is only allowed 'statuses: read'."
}
]
}
@@ -0,0 +1,31 @@
include-source: false # Drop file/line/col from output
skip:
- Go
- TypeScript
permissions-policy: LimitedRead
# Note, the workflow names are intentionally short so the error message doesn't get truncated too much
---
on: push
jobs:
deploy:
permissions: {}
uses: a/b/.github/workflows/c.yml@v1
---
a/b/.github/workflows/c.yml@v1
---
on: workflow_call
jobs:
deploy:
name: Deploy 1
permissions: write-all
runs-on: ubuntu-latest
steps:
- run: echo hi
---
{
"errors": [
{
"Message": ".github/workflows/errors-reusable-workflow-permissions-not-allowed-request-write-all-allowed-none.yml (Line: 3, Col: 3): Error calling workflow 'a/b/.github/workflows/c.yml@v1'. The nested job 'Deploy 1' is requesting 'actions: write, checks: write, contents: write, deployments: write, discussions: write, issues: write, packages: write, pages: write, pull-requests: write, repository-projects: write, statuses: write, security-events: write, id-token: write', but is only allowed 'actions: none, ch[...]"
}
]
}
@@ -0,0 +1,31 @@
include-source: false # Drop file/line/col from output
skip:
- Go
- TypeScript
permissions-policy: LimitedRead
# Note, the workflow names are intentionally short so the error message doesn't get truncated too much
---
on: push
jobs:
deploy:
permissions: read-all
uses: a/b/.github/workflows/c.yml@v1
---
a/b/.github/workflows/c.yml@v1
---
on: workflow_call
jobs:
deploy:
name: Deploy 1
permissions: write-all
runs-on: ubuntu-latest
steps:
- run: echo hi
---
{
"errors": [
{
"Message": ".github/workflows/errors-reusable-workflow-permissions-not-allowed-request-write-all-allowed-read-all.yml (Line: 3, Col: 3): Error calling workflow 'a/b/.github/workflows/c.yml@v1'. The nested job 'Deploy 1' is requesting 'actions: write, checks: write, contents: write, deployments: write, discussions: write, issues: write, packages: write, pages: write, pull-requests: write, repository-projects: write, statuses: write, security-events: write, id-token: write', but is only allowed 'actions: read[...]"
}
]
}
@@ -0,0 +1,29 @@
include-source: false # Drop file/line/col from output
skip:
- Go
- TypeScript
permissions-policy: LimitedRead
---
on: push
jobs:
deploy:
uses: contoso/templates/.github/workflows/deploy.yml@v1
---
contoso/templates/.github/workflows/deploy.yml@v1
---
on: workflow_call
permissions:
actions: write
jobs:
deploy:
runs-on: ubuntu-latest
steps:
- run: echo hi
---
{
"errors": [
{
"Message": ".github/workflows/errors-reusable-workflow-permissions-not-allowed-workflow-level-from-caller-default.yml (Line: 3, Col: 3): Error calling workflow 'contoso/templates/.github/workflows/deploy.yml@v1'. The workflow 'contoso/templates/.github/workflows/deploy.yml@v1' is requesting 'actions: write', but is only allowed 'actions: none'."
}
]
}
@@ -0,0 +1,30 @@
include-source: false # Drop file/line/col from output
skip:
- Go
- TypeScript
---
on: push
jobs:
deploy:
permissions:
actions: read
uses: contoso/templates/.github/workflows/deploy.yml@v1
---
contoso/templates/.github/workflows/deploy.yml@v1
---
on: workflow_call
permissions:
actions: write
jobs:
deploy:
runs-on: ubuntu-latest
steps:
- run: echo hi
---
{
"errors": [
{
"Message": ".github/workflows/errors-reusable-workflow-permissions-not-allowed-workflow-level-from-caller-job-level.yml (Line: 3, Col: 3): Error calling workflow 'contoso/templates/.github/workflows/deploy.yml@v1'. The workflow 'contoso/templates/.github/workflows/deploy.yml@v1' is requesting 'actions: write', but is only allowed 'actions: read'."
}
]
}
@@ -0,0 +1,30 @@
include-source: false # Drop file/line/col from output
skip:
- Go
- TypeScript
---
on: push
permissions:
actions: read
jobs:
deploy:
uses: contoso/templates/.github/workflows/deploy.yml@v1
---
contoso/templates/.github/workflows/deploy.yml@v1
---
on: workflow_call
permissions:
actions: write
jobs:
deploy:
runs-on: ubuntu-latest
steps:
- run: echo hi
---
{
"errors": [
{
"Message": ".github/workflows/errors-reusable-workflow-permissions-not-allowed-workflow-level-from-caller-workflow-level.yml (Line: 5, Col: 3): Error calling workflow 'contoso/templates/.github/workflows/deploy.yml@v1'. The workflow 'contoso/templates/.github/workflows/deploy.yml@v1' is requesting 'actions: write', but is only allowed 'actions: read'."
}
]
}
@@ -0,0 +1,66 @@
include-source: false # Drop file/line/col from output
skip:
- TypeScript
---
name: CI
on:
push:
jobs:
build:
runs-on: [ self-hosted ]
steps:
# Valid
- run: echo no-id # no id
- id: valid-id
run: echo valid-id
- id: _
run: echo _
- id: _a
run: echo _a
- id: a__
run: echo a__
# Duplicate
- id: my-step
run: echo my-step
- id: my-step
run: echo my-step-duplicate
# Duplicate (case insensitive)
- id: step1
run: echo step1
- id: STEP1
run: echo STEP1
# Invalid
- id: _invalid$stuff
run: echo _invalid$stuff
- id: -invalid-step!
run: echo -invalid-step!
- id: __
run: echo __
- id: __a
run: echo __a
---
{
"errors": [
{
"Message": ".github/workflows/errors-step-id.yml (Line: 22, Col: 13): The identifier 'my-step' may not be used more than once within the same scope."
},
{
"Message": ".github/workflows/errors-step-id.yml (Line: 28, Col: 13): The identifier 'STEP1' may not be used more than once within the same scope."
},
{
"Message": ".github/workflows/errors-step-id.yml (Line: 32, Col: 13): The identifier '_invalid$stuff' is invalid. IDs may only contain alphanumeric characters, '_', and '-'. IDs must start with a letter or '_' and and must be less than 100 characters."
},
{
"Message": ".github/workflows/errors-step-id.yml (Line: 34, Col: 13): The identifier '-invalid-step!' is invalid. IDs may only contain alphanumeric characters, '_', and '-'. IDs must start with a letter or '_' and and must be less than 100 characters."
},
{
"Message": ".github/workflows/errors-step-id.yml (Line: 36, Col: 13): The identifier '__' is invalid. IDs starting with '__' are reserved."
},
{
"Message": ".github/workflows/errors-step-id.yml (Line: 38, Col: 13): The identifier '__a' is invalid. IDs starting with '__' are reserved."
}
]
}
@@ -0,0 +1,19 @@
include-source: false # Drop file/line/col from output
---
on:
push:
jobs:
build:
runs-on: ubuntu-latest
steps:
- name: Checkout
if: (steps.publish-pdf.outcome != 'Skipped' || steps.publish-json.outcome != 'Skipped) && success()
run: echo "Hello"
---
{
"errors": [
{
"Message": ".github/workflows/errors-step-if.yml (Line: 8, Col: 15): Unexpected symbol: ''Skipped) && success()'. Located at position 74 within expression: (steps.publish-pdf.outcome != 'Skipped' || steps.publish-json.outcome != 'Skipped) && success()"
}
]
}
@@ -0,0 +1,47 @@
include-source: false # Drop file/line/col from output
skip:
- Go
- TypeScript
---
on: push
jobs:
build:
runs-on: ubuntu-latest
steps:
# Max expression length is 21000
- run: |
echo ${{ github.sha }}
# 1000 chars: 1234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890
# 1000 chars: 1234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890
# 1000 chars: 1234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890
# 1000 chars: 1234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890
# 1000 chars: 1234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890
# 1000 chars: 1234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890
# 1000 chars: 1234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890
# 1000 chars: 1234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890
# 1000 chars: 1234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890
# 1000 chars: 1234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890
# 1000 chars: 1234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890
# 1000 chars: 1234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890
# 1000 chars: 1234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890
# 1000 chars: 1234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890
# 1000 chars: 1234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890
# 1000 chars: 1234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890
# 1000 chars: 1234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890
# 1000 chars: 1234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890
# 1000 chars: 1234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890
# 1000 chars: 1234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890
# 1000 chars: 1234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890
---
{
"errors": [
{
"Message": ".github/workflows/errors-step-run-exceeds-length.yml (Line: 7, Col: 14): Exceeded max expression length 21000"
}
]
}
@@ -0,0 +1,16 @@
include-source: false # Drop file/line/col from output
---
on: push
jobs:
build:
runs-on: ubuntu-latest
steps:
- shell: foo
---
{
"errors": [
{
"Message": ".github/workflows/errors-step-run-missing.yml (Line: 6, Col: 9): Required property is missing: run"
}
]
}
@@ -0,0 +1,17 @@
include-source: false # Drop file/line/col from output
---
on: push
jobs:
build:
runs-on: ubuntu-latest
steps:
- with:
foo: bar
---
{
"errors": [
{
"Message": ".github/workflows/errors-step-uses-missing.yml (Line: 6, Col: 9): Required property is missing: uses"
}
]
}
@@ -0,0 +1,33 @@
include-source: false # Drop file/line/col from output
skip:
- TypeScript
---
on: push
jobs:
build:
runs-on: ubuntu-latest
steps:
# Valid
- uses: docker://alpine:3.8
- uses: actions/aws/ec2@main
- uses: ./.github/actions/my-action
# Invalid
- uses: $$docker://alpine:3.8
- uses: ...docker://alpine:3.8
- uses: badrepo@invalid
- uses: docker://
---
{
"errors": [
{
"Message": ".github/workflows/errors-step-uses-syntax.yml (Line: 12, Col: 15): Expected format {org}/{repo}[/path]@ref. Actual '$$docker://alpine:3.8'"
},
{
"Message": ".github/workflows/errors-step-uses-syntax.yml (Line: 13, Col: 15): Expected format {org}/{repo}[/path]@ref. Actual '...docker://alpine:3.8'"
},
{
"Message": ".github/workflows/errors-step-uses-syntax.yml (Line: 14, Col: 15): Expected format {org}/{repo}[/path]@ref. Actual 'badrepo@invalid'"
}
]
}
@@ -0,0 +1,20 @@
include-source: false # Drop file/line/col from output
skip:
- TypeScript
---
on: push
jobs:
build:
if: ${{ contains('a', 'b' }}
runs-on: ubuntu-latest
steps:
- run: echo hi
---
{
"errors": [
{
"Message": ".github/workflows/errors-unclosed-tokens.yml (Line: 4, Col: 9): Unexpected end of expression: ''b''. Located at position 15 within expression: contains('a', 'b'"
}
]
}
@@ -0,0 +1,18 @@
include-source: false # Drop file/line/col from output
skip:
- TypeScript
---
on: push
jobs:
build:
runs-on: ubuntu-latest
steps:
not: a-sequence
---
{
"errors": [
{
"Message": ".github/workflows/errors-unexpected-mapping.yml (Line: 6, Col: 7): A mapping was not expected"
}
]
}
@@ -0,0 +1,20 @@
include-source: false # Drop file/line/col from output
---
name:
- no
- sequence
- here
on: push
jobs:
build:
runs-on: ubuntu-latest
steps:
- run: echo hi
---
{
"errors": [
{
"Message": ".github/workflows/errors-unexpected-sequence.yml (Line: 2, Col: 3): A sequence was not expected"
}
]
}
@@ -0,0 +1,17 @@
include-source: false # Drop file/line/col from output
---
on: push
jobs:
build:
runs-on: ubuntu-latest
runs-on: duplicate-key
steps:
- run: echo hi
---
{
"errors": [
{
"Message": ".github/workflows/errors-value-already-defined.yml (Line: 5, Col: 5): 'runs-on' is already defined"
}
]
}
@@ -0,0 +1,19 @@
include-source: false # Drop file/line/col from output
skip:
- TypeScript
---
on: push
jobs:
build:
runs-on: ubuntu-latest
cancel-timeout-minutes: !!int "300"
steps:
- run: echo hi
---
{
"errors": [
{
"Message": ".github/workflows/errors-yaml-invalid-style.yml: The scalar style 'DoubleQuoted' on line 5 and column 29 is not valid with the tag 'tag:yaml.org,2002:int'"
}
]
}
@@ -0,0 +1,20 @@
include-source: false # Drop file/line/col from output
skip:
- TypeScript
---
on: push
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: github/issue-labeler@v2.5
with:
not-before: !!timestamp 2022-10-26T00:00:00Z # explicitly set unsupported tag
---
{
"errors": [
{
"Message": ".github/workflows/errors-yaml-tags-explicit-unsupported.yml: Unexpected tag 'tag:yaml.org,2002:timestamp'"
}
]
}
@@ -0,0 +1,80 @@
include-source: false # Drop file/line/col from output
skip:
- TypeScript
---
on: push
env:
time: < #mapping token
jobs:
build:
if: false || ${{ true && true }} #expression token
runs-on: [macos-latest,linux,self-hosted, <] #sequence token
steps:
- run: echo Hello && World #string token
build2:
if: false
runs-on: ubuntu-latest
steps:
- run: echo 1
---
{
"env": {
"type": 2,
"map": [
{
"Key": "time",
"Value": "<"
}
]
},
"jobs": [
{
"type": "job",
"id": "build",
"name": "build",
"if": {
"type": 3,
"expr": "success() && (format('false || {0}', true && true))"
},
"runs-on": {
"type": 1,
"seq": [
"macos-latest",
"linux",
"self-hosted",
"<"
]
},
"steps": [
{
"id": "__run",
"if": {
"type": 3,
"expr": "success()"
},
"run": "echo Hello && World"
}
]
},
{
"type": "job",
"id": "build2",
"name": "build2",
"if": {
"type": 3,
"expr": "success() && (false)"
},
"runs-on": "ubuntu-latest",
"steps": [
{
"id": "__run",
"if": {
"type": 3,
"expr": "success()"
},
"run": "echo 1"
}
]
}
]
}
@@ -0,0 +1,554 @@
skip:
- C#
- Go
---
on:
branch_protection_rule:
types:
- created
- edited
- deleted
check_run:
types:
- created
- completed
- requested_action
- rerequested
check_suite:
types:
- completed
create:
delete:
deployment:
deployment_status:
discussion:
types:
- created
- edited
- deleted
- transferred
- pinned
- unpinned
- labeled
- unlabeled
- locked
- unlocked
- category_changed
- answered
- unanswered
discussion_comment:
types:
- created
- edited
- deleted
fork:
gollum:
issue_comment:
types:
- created
- edited
- deleted
issues:
types:
- opened
- edited
- deleted
- transferred
- pinned
- unpinned
- closed
- reopened
- assigned
- unassigned
- labeled
- unlabeled
- locked
- unlocked
- milestoned
- demilestoned
label:
types:
- created
- edited
- deleted
merge_group:
types: checks_requested
milestone:
types:
- created
- closed
- opened
- edited
- deleted
page_build:
project:
types:
- created
- closed
- opened
- edited
- deleted
project_card:
types:
- created
- moved
- converted
- edited
- deleted
project_column:
types:
- created
- updated
- moved
- deleted
public:
pull_request:
branches:
- master
- 'main'
branches-ignore: [ develop ]
paths: file
paths-ignore: 'file'
types:
- assigned
- unassigned
- labeled
- unlabeled
- opened
- edited
- closed
- reopened
- synchronize
- converted_to_draft
- ready_for_review
- locked
- unlocked
- review_requested
- review_request_removed
- auto_merge_enabled
- auto_merge_disabled
pull_request_comment:
types:
- created
- edited
- deleted
pull_request_review:
types:
- submitted
- edited
- dismissed
pull_request_review_comment:
types:
- created
- edited
- deleted
pull_request_target:
branches:
- master
- 'main'
branches-ignore: [ develop ]
paths: file
paths-ignore: 'file'
types:
- assigned
- unassigned
- labeled
- unlabeled
- opened
- edited
- closed
- reopened
- synchronize
- converted_to_draft
- ready_for_review
- locked
- unlocked
- review_requested
- review_request_removed
- auto_merge_enabled
- auto_merge_disabled
push:
branches:
- master
- 'main'
branches-ignore: [ develop ]
tags:
- v1
- 'v2'
tags-ignore: [ 'v3' ]
paths: file
paths-ignore: 'file'
registry_package:
types:
- published
- updated
release:
types:
- published
- unpublished
- created
- edited
- deleted
- prereleased
- released
schedule:
- cron: "* * * * 5"
- cron: "* * * * 6"
status:
watch:
types: started
workflow_call:
inputs:
foo:
type: string
description: 'Foo'
required: true
default: 'bar'
workflow_run:
workflows: ci
types:
- requested
- completed
- in_progress
branches:
- master
- 'main'
branches-ignore: [ develop ]
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- run: echo hi
continue-on-error: true
---
{
"events": {
"branch_protection_rule": {
"types": [
"created",
"edited",
"deleted"
]
},
"check_run": {
"types": [
"created",
"completed",
"requested_action",
"rerequested"
]
},
"check_suite": {
"types": [
"completed"
]
},
"create": {},
"delete": {},
"deployment": {},
"deployment_status": {},
"discussion": {
"types": [
"created",
"edited",
"deleted",
"transferred",
"pinned",
"unpinned",
"labeled",
"unlabeled",
"locked",
"unlocked",
"category_changed",
"answered",
"unanswered"
]
},
"discussion_comment": {
"types": [
"created",
"edited",
"deleted"
]
},
"fork": {},
"gollum": {},
"issue_comment": {
"types": [
"created",
"edited",
"deleted"
]
},
"issues": {
"types": [
"opened",
"edited",
"deleted",
"transferred",
"pinned",
"unpinned",
"closed",
"reopened",
"assigned",
"unassigned",
"labeled",
"unlabeled",
"locked",
"unlocked",
"milestoned",
"demilestoned"
]
},
"label": {
"types": [
"created",
"edited",
"deleted"
]
},
"merge_group": {
"types": [
"checks_requested"
]
},
"milestone": {
"types": [
"created",
"closed",
"opened",
"edited",
"deleted"
]
},
"page_build": {},
"project": {
"types": [
"created",
"closed",
"opened",
"edited",
"deleted"
]
},
"project_card": {
"types": [
"created",
"moved",
"converted",
"edited",
"deleted"
]
},
"project_column": {
"types": [
"created",
"updated",
"moved",
"deleted"
]
},
"public": {},
"pull_request": {
"branches": [
"master",
"main"
],
"branches-ignore": [
"develop"
],
"paths": [
"file"
],
"paths-ignore": [
"file"
],
"types": [
"assigned",
"unassigned",
"labeled",
"unlabeled",
"opened",
"edited",
"closed",
"reopened",
"synchronize",
"converted_to_draft",
"ready_for_review",
"locked",
"unlocked",
"review_requested",
"review_request_removed",
"auto_merge_enabled",
"auto_merge_disabled"
]
},
"pull_request_comment": {
"types": [
"created",
"edited",
"deleted"
]
},
"pull_request_review": {
"types": [
"submitted",
"edited",
"dismissed"
]
},
"pull_request_review_comment": {
"types": [
"created",
"edited",
"deleted"
]
},
"pull_request_target": {
"branches": [
"master",
"main"
],
"branches-ignore": [
"develop"
],
"paths": [
"file"
],
"paths-ignore": [
"file"
],
"types": [
"assigned",
"unassigned",
"labeled",
"unlabeled",
"opened",
"edited",
"closed",
"reopened",
"synchronize",
"converted_to_draft",
"ready_for_review",
"locked",
"unlocked",
"review_requested",
"review_request_removed",
"auto_merge_enabled",
"auto_merge_disabled"
]
},
"push": {
"branches": [
"master",
"main"
],
"branches-ignore": [
"develop"
],
"tags": [
"v1",
"v2"
],
"tags-ignore": [
"v3"
],
"paths": [
"file"
],
"paths-ignore": [
"file"
]
},
"registry_package": {
"types": [
"published",
"updated"
]
},
"release": {
"types": [
"published",
"unpublished",
"created",
"edited",
"deleted",
"prereleased",
"released"
]
},
"schedule": [
{
"cron": "* * * * 5"
},
{
"cron": "* * * * 6"
}
],
"status": {},
"watch": {
"types": [
"started"
]
},
"workflow_call": {
"inputs": {
"foo": {
"type": "string",
"description": "Foo",
"required": true,
"default": "bar"
}
}
},
"workflow_run": {
"branches": [
"master",
"main"
],
"branches-ignore": [
"develop"
],
"types": [
"requested",
"completed",
"in_progress"
],
"workflows": [
"ci"
]
}
},
"jobs": [
{
"type": "job",
"id": "build",
"name": "build",
"if": {
"type": 3,
"expr": "success()"
},
"runs-on": "ubuntu-latest",
"steps": [
{
"id": "__actions_checkout",
"if": {
"type": 3,
"expr": "success()"
},
"uses": "actions/checkout@v3"
},
{
"id": "__run",
"if": {
"type": 3,
"expr": "success()"
},
"continue-on-error": true,
"run": "echo hi"
}
]
}
]
}
@@ -0,0 +1,53 @@
skip:
- C#
- Go
---
on:
repository_dispatch:
workflow_dispatch:
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- run: echo hi
continue-on-error: true
---
{
"events": {
"repository_dispatch": {},
"workflow_dispatch": {}
},
"jobs": [
{
"type": "job",
"id": "build",
"name": "build",
"if": {
"type": 3,
"expr": "success()"
},
"runs-on": "ubuntu-latest",
"steps": [
{
"id": "__actions_checkout",
"if": {
"type": 3,
"expr": "success()"
},
"uses": "actions/checkout@v3"
},
{
"id": "__run",
"if": {
"type": 3,
"expr": "success()"
},
"continue-on-error": true,
"run": "echo hi"
}
]
}
]
}
@@ -0,0 +1,96 @@
skip:
- C#
- Go
---
on:
repository_dispatch:
types: [custom-type]
workflow_dispatch:
inputs:
name:
type: string
default: monalisa
description: Name to greet
send_emojis:
type: boolean
default: true
greeting:
type: choice
default: hello
options:
- hello
- hallo
env:
type: environment
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- run: echo hi
continue-on-error: true
---
{
"events": {
"repository_dispatch": {
"types": [
"custom-type"
]
},
"workflow_dispatch": {
"inputs": {
"name": {
"type": "string",
"description": "Name to greet",
"default": "monalisa"
},
"send_emojis": {
"type": "boolean",
"default": true
},
"greeting": {
"type": "choice",
"options": [
"hello",
"hallo"
],
"default": "hello"
},
"env": {
"type": "environment"
}
}
}
},
"jobs": [
{
"type": "job",
"id": "build",
"name": "build",
"if": {
"type": 3,
"expr": "success()"
},
"runs-on": "ubuntu-latest",
"steps": [
{
"id": "__actions_checkout",
"if": {
"type": 3,
"expr": "success()"
},
"uses": "actions/checkout@v3"
},
{
"id": "__run",
"if": {
"type": 3,
"expr": "success()"
},
"continue-on-error": true,
"run": "echo hi"
}
]
}
]
}
@@ -0,0 +1,51 @@
include-source: false # Drop file/line/col from output
skip:
- Go
- C#
---
on: [push, pull_request]
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- run: echo hi
continue-on-error: true
---
{
"events": {
"push": {},
"pull_request": {}
},
"jobs": [
{
"type": "job",
"id": "build",
"name": "build",
"if": {
"type": 3,
"expr": "success()"
},
"runs-on": "ubuntu-latest",
"steps": [
{
"id": "__actions_checkout",
"if": {
"type": 3,
"expr": "success()"
},
"uses": "actions/checkout@v3"
},
{
"id": "__run",
"if": {
"type": 3,
"expr": "success()"
},
"continue-on-error": true,
"run": "echo hi"
}
]
}
]
}
@@ -0,0 +1,25 @@
include-source: false # Drop file/line/col from output
skip:
- Go
- C#
---
on:
push:
inputs:
name:
type: string
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- run: echo hi
continue-on-error: true
---
{
"errors": [
{
"Message": ".github/workflows/events-single-invalid-config.yml (Line: 3, Col: 5): Unexpected value 'inputs'"
}
]
}
@@ -0,0 +1,29 @@
include-source: false # Drop file/line/col from output
skip:
- Go
- C#
---
on:
workflow_dispatch:
unknown_value: test
inputs:
name:
another_unknown_value: 123
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- run: echo hi
continue-on-error: true
---
{
"errors": [
{
"Message": ".github/workflows/events-single-invalid.yml (Line: 3, Col: 5): Unexpected value 'unknown_value'"
},
{
"Message": ".github/workflows/events-single-invalid.yml (Line: 6, Col: 9): Unexpected value 'another_unknown_value'"
}
]
}
@@ -0,0 +1,56 @@
include-source: false # Drop file/line/col from output
skip:
- Go
- C#
---
on:
pull_request:
types: synchronize
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- run: echo hi
continue-on-error: true
---
{
"events": {
"pull_request": {
"types": [
"synchronize"
]
}
},
"jobs": [
{
"type": "job",
"id": "build",
"name": "build",
"if": {
"type": 3,
"expr": "success()"
},
"runs-on": "ubuntu-latest",
"steps": [
{
"id": "__actions_checkout",
"if": {
"type": 3,
"expr": "success()"
},
"uses": "actions/checkout@v3"
},
{
"id": "__run",
"if": {
"type": 3,
"expr": "success()"
},
"continue-on-error": true,
"run": "echo hi"
}
]
}
]
}
@@ -0,0 +1,50 @@
include-source: false # Drop file/line/col from output
skip:
- Go
- C#
---
on: push
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- run: echo hi
continue-on-error: true
---
{
"events": {
"push": {}
},
"jobs": [
{
"type": "job",
"id": "build",
"name": "build",
"if": {
"type": 3,
"expr": "success()"
},
"runs-on": "ubuntu-latest",
"steps": [
{
"id": "__actions_checkout",
"if": {
"type": 3,
"expr": "success()"
},
"uses": "actions/checkout@v3"
},
{
"id": "__run",
"if": {
"type": 3,
"expr": "success()"
},
"continue-on-error": true,
"run": "echo hi"
}
]
}
]
}
+42
View File
@@ -0,0 +1,42 @@
include-source: false # Drop file/line/col from output
---
on: push
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: docker://chinthakagodawita/autoupdate-action@sha256:a3e234f9fce69dd9b3a205acfd55bf9d5c94f0f7cf119f0267a5ab54220e8f56 # v1
- run: echo hi
---
{
"jobs": [
{
"type": "job",
"id": "build",
"name": "build",
"if": {
"type": 3,
"expr": "success()"
},
"runs-on": "ubuntu-latest",
"steps": [
{
"id": "__chinthakagodawita_autoupdate-action_sha256_a3e234f9fce69dd9b3a205acfd55bf9d5c94f0f7cf119f0267a5ab5",
"if": {
"type": 3,
"expr": "success()"
},
"uses": "docker://chinthakagodawita/autoupdate-action@sha256:a3e234f9fce69dd9b3a205acfd55bf9d5c94f0f7cf119f0267a5ab54220e8f56"
},
{
"id": "__run",
"if": {
"type": 3,
"expr": "success()"
},
"run": "echo hi"
}
]
}
]
}
+61
View File
@@ -0,0 +1,61 @@
include-source: false # Drop file/line/col from output
skip:
- TypeScript
---
on: push
jobs:
job1:
runs-on: windows-2019
steps:
- run: echo 1
job2:
runs-on: windows-2019
cancel-timeout-minutes: 5
steps:
- run: echo 2
---
{
"jobs": [
{
"type": "job",
"id": "job1",
"name": "job1",
"if": {
"type": 3,
"expr": "success()"
},
"runs-on": "windows-2019",
"steps": [
{
"id": "__run",
"if": {
"type": 3,
"expr": "success()"
},
"run": "echo 1"
}
]
},
{
"type": "job",
"id": "job2",
"name": "job2",
"if": {
"type": 3,
"expr": "success()"
},
"cancel-timeout-minutes": 5,
"runs-on": "windows-2019",
"steps": [
{
"id": "__run",
"if": {
"type": 3,
"expr": "success()"
},
"run": "echo 2"
}
]
}
]
}
@@ -0,0 +1,124 @@
include-source: false # Drop file/line/col from output
skip:
- Go
- TypeScript
---
on: push
jobs:
build:
runs-on: ubuntu-latest
cancel-timeout-minutes: 123
steps:
- run: echo hi
build2:
strategy:
matrix:
include:
- runs-on: ubuntu-latest
cancel-timeout-minutes: 5
- runs-on: windows-latest
cancel-timeout-minutes: 6
runs-on: ${{ matrix.runs-on }}
cancel-timeout-minutes: ${{ matrix.cancel-timeout-minutes }}
steps:
- run: echo hi
---
{
"jobs": [
{
"type": "job",
"id": "build",
"name": "build",
"if": {
"type": 3,
"expr": "success()"
},
"cancel-timeout-minutes": 123,
"runs-on": "ubuntu-latest",
"steps": [
{
"id": "__run",
"if": {
"type": 3,
"expr": "success()"
},
"run": "echo hi"
}
]
},
{
"type": "job",
"id": "build2",
"name": "build2",
"if": {
"type": 3,
"expr": "success()"
},
"strategy": {
"type": 2,
"map": [
{
"Key": "matrix",
"Value": {
"type": 2,
"map": [
{
"Key": "include",
"Value": {
"type": 1,
"seq": [
{
"type": 2,
"map": [
{
"Key": "runs-on",
"Value": "ubuntu-latest"
},
{
"Key": "cancel-timeout-minutes",
"Value": 5
}
]
},
{
"type": 2,
"map": [
{
"Key": "runs-on",
"Value": "windows-latest"
},
{
"Key": "cancel-timeout-minutes",
"Value": 6
}
]
}
]
}
}
]
}
}
]
},
"cancel-timeout-minutes": {
"type": 3,
"expr": "matrix.cancel-timeout-minutes"
},
"runs-on": {
"type": 3,
"expr": "matrix.runs-on"
},
"steps": [
{
"id": "__run",
"if": {
"type": 3,
"expr": "success()"
},
"run": "echo hi"
}
]
}
]
}
@@ -0,0 +1,124 @@
include-source: false # Drop file/line/col from output
skip:
- Go
- TypeScript
---
on: push
jobs:
build:
runs-on: ubuntu-latest
concurrency: foo
steps:
- run: echo hi
build2:
strategy:
matrix:
include:
- runs-on: ubuntu-latest
concurrency: ubuntu
- runs-on: windows-latest
concurrency: windows
runs-on: ${{ matrix.runs-on }}
cancel-timeout-minutes: ${{ matrix.concurrency }}
steps:
- run: echo hi
---
{
"jobs": [
{
"type": "job",
"id": "build",
"name": "build",
"if": {
"type": 3,
"expr": "success()"
},
"concurrency": "foo",
"runs-on": "ubuntu-latest",
"steps": [
{
"id": "__run",
"if": {
"type": 3,
"expr": "success()"
},
"run": "echo hi"
}
]
},
{
"type": "job",
"id": "build2",
"name": "build2",
"if": {
"type": 3,
"expr": "success()"
},
"strategy": {
"type": 2,
"map": [
{
"Key": "matrix",
"Value": {
"type": 2,
"map": [
{
"Key": "include",
"Value": {
"type": 1,
"seq": [
{
"type": 2,
"map": [
{
"Key": "runs-on",
"Value": "ubuntu-latest"
},
{
"Key": "concurrency",
"Value": "ubuntu"
}
]
},
{
"type": 2,
"map": [
{
"Key": "runs-on",
"Value": "windows-latest"
},
{
"Key": "concurrency",
"Value": "windows"
}
]
}
]
}
}
]
}
}
]
},
"cancel-timeout-minutes": {
"type": 3,
"expr": "matrix.concurrency"
},
"runs-on": {
"type": 3,
"expr": "matrix.runs-on"
},
"steps": [
{
"id": "__run",
"if": {
"type": 3,
"expr": "success()"
},
"run": "echo hi"
}
]
}
]
}
@@ -0,0 +1,20 @@
include-source: false # Drop file/line/col from output
---
on: push
jobs:
build:
runs-on: linux
container:
image: node:14.16
credentials:
badkey: somevalue
steps:
- run: echo hi
---
{
"errors": [
{
"Message": ".github/workflows/job-container-invalid-credentials.yml (Line: 8, Col: 9): Unexpected value 'badkey'"
}
]
}
@@ -0,0 +1,49 @@
include-source: false # Drop file/line/col from output
---
on: push
jobs:
build1:
runs-on: linux
container:
image: node:14.16
credentials:
badkey: somevalue
steps:
- run: echo hi
build2:
runs-on: linux
container:
image:
steps:
- run: echo hi
build3:
runs-on: linux
services:
servicename:
badkey: somevalue
steps:
- run: echo hi
build4:
runs-on: linux
services:
servicename:
image:
steps:
- run: echo hi
---
{
"errors": [
{
"Message": ".github/workflows/job-container-invalid.yml (Line: 8, Col: 9): Unexpected value 'badkey'"
},
{
"Message": ".github/workflows/job-container-invalid.yml (Line: 14, Col: 13): Unexpected value ''"
},
{
"Message": ".github/workflows/job-container-invalid.yml (Line: 21, Col: 9): Unexpected value 'badkey'"
},
{
"Message": ".github/workflows/job-container-invalid.yml (Line: 28, Col: 15): Unexpected value ''"
}
]
}
@@ -0,0 +1,28 @@
include-source: false # Drop file/line/col from output
---
on: push
jobs:
build1:
runs-on: linux
container:
options: someoption
steps:
- run: echo hi
build2:
runs-on: linux
services:
nginx:
options: someoption
steps:
- run: echo hi
---
{
"errors": [
{
"Message": ".github/workflows/job-container-missing-image.yml (Line: 6, Col: 7): Container image cannot be empty"
},
{
"Message": ".github/workflows/job-container-missing-image.yml (Line: 13, Col: 9): Container image cannot be empty"
}
]
}
@@ -0,0 +1,199 @@
include-source: false # Drop file/line/col from output
---
on: push
jobs:
# Short form
build:
runs-on: linux
container: ubuntu:16.04
steps:
- run: echo hi
# Long form
build2:
runs-on: linux
container:
image: node:14.16
env:
NODE_ENV: development
ports:
- 80
volumes:
- my_docker_volume:/volume_mount
options: --cpus 1
credentials:
username: ${{ github.actor }}
password: ${{ secrets.github_token }}
steps:
- run: echo hi
# With credential
build3:
runs-on: linux
container:
image: private:latest
credentials:
username: ${{ env.FROM_ENV }}
password: ${{ secrets.FROM_SECRETS }}
steps:
- run: echo hi
---
{
"jobs": [
{
"type": "job",
"id": "build",
"name": "build",
"if": {
"type": 3,
"expr": "success()"
},
"runs-on": "linux",
"container": "ubuntu:16.04",
"steps": [
{
"id": "__run",
"if": {
"type": 3,
"expr": "success()"
},
"run": "echo hi"
}
]
},
{
"type": "job",
"id": "build2",
"name": "build2",
"if": {
"type": 3,
"expr": "success()"
},
"runs-on": "linux",
"container": {
"type": 2,
"map": [
{
"Key": "image",
"Value": "node:14.16"
},
{
"Key": "env",
"Value": {
"type": 2,
"map": [
{
"Key": "NODE_ENV",
"Value": "development"
}
]
}
},
{
"Key": "ports",
"Value": {
"type": 1,
"seq": [
"80"
]
}
},
{
"Key": "volumes",
"Value": {
"type": 1,
"seq": [
"my_docker_volume:/volume_mount"
]
}
},
{
"Key": "options",
"Value": "--cpus 1"
},
{
"Key": "credentials",
"Value": {
"type": 2,
"map": [
{
"Key": "username",
"Value": {
"type": 3,
"expr": "github.actor"
}
},
{
"Key": "password",
"Value": {
"type": 3,
"expr": "secrets.github_token"
}
}
]
}
}
]
},
"steps": [
{
"id": "__run",
"if": {
"type": 3,
"expr": "success()"
},
"run": "echo hi"
}
]
},
{
"type": "job",
"id": "build3",
"name": "build3",
"if": {
"type": 3,
"expr": "success()"
},
"runs-on": "linux",
"container": {
"type": 2,
"map": [
{
"Key": "image",
"Value": "private:latest"
},
{
"Key": "credentials",
"Value": {
"type": 2,
"map": [
{
"Key": "username",
"Value": {
"type": 3,
"expr": "env.FROM_ENV"
}
},
{
"Key": "password",
"Value": {
"type": 3,
"expr": "secrets.FROM_SECRETS"
}
}
]
}
}
]
},
"steps": [
{
"id": "__run",
"if": {
"type": 3,
"expr": "success()"
},
"run": "echo hi"
}
]
}
]
}
@@ -0,0 +1,166 @@
include-source: false # Drop file/line/col from output
skip:
- Go
- TypeScript
---
on: push
jobs:
build:
runs-on: ubuntu-latest
continue-on-error: true
steps:
- run: echo hi
build2:
runs-on: ubuntu-latest
continue-on-error: false
steps:
- run: echo hi
buil3:
runs-on: ubuntu-latest
continue-on-error: ${{ startsWith(github.ref, 'refs/heads/experimental/') }}
steps:
- run: echo hi
build4:
strategy:
matrix:
include:
- cfg: experimental
- cfg: normal
runs-on: ubuntu-latest
continue-on-error: ${{ matrix.cfg == 'experimental' }}
steps:
- run: echo hi
---
{
"jobs": [
{
"type": "job",
"id": "build",
"name": "build",
"if": {
"type": 3,
"expr": "success()"
},
"continue-on-error": true,
"runs-on": "ubuntu-latest",
"steps": [
{
"id": "__run",
"if": {
"type": 3,
"expr": "success()"
},
"run": "echo hi"
}
]
},
{
"type": "job",
"id": "build2",
"name": "build2",
"if": {
"type": 3,
"expr": "success()"
},
"continue-on-error": false,
"runs-on": "ubuntu-latest",
"steps": [
{
"id": "__run",
"if": {
"type": 3,
"expr": "success()"
},
"run": "echo hi"
}
]
},
{
"type": "job",
"id": "buil3",
"name": "buil3",
"if": {
"type": 3,
"expr": "success()"
},
"continue-on-error": {
"type": 3,
"expr": "startsWith(github.ref, 'refs/heads/experimental/')"
},
"runs-on": "ubuntu-latest",
"steps": [
{
"id": "__run",
"if": {
"type": 3,
"expr": "success()"
},
"run": "echo hi"
}
]
},
{
"type": "job",
"id": "build4",
"name": "build4",
"if": {
"type": 3,
"expr": "success()"
},
"strategy": {
"type": 2,
"map": [
{
"Key": "matrix",
"Value": {
"type": 2,
"map": [
{
"Key": "include",
"Value": {
"type": 1,
"seq": [
{
"type": 2,
"map": [
{
"Key": "cfg",
"Value": "experimental"
}
]
},
{
"type": 2,
"map": [
{
"Key": "cfg",
"Value": "normal"
}
]
}
]
}
}
]
}
}
]
},
"continue-on-error": {
"type": 3,
"expr": "matrix.cfg == 'experimental'"
},
"runs-on": "ubuntu-latest",
"steps": [
{
"id": "__run",
"if": {
"type": 3,
"expr": "success()"
},
"run": "echo hi"
}
]
}
]
}
@@ -0,0 +1,63 @@
include-source: false # Drop file/line/col from output
skip:
- TypeScript
---
on: push
jobs:
build:
runs-on: linux
defaults:
run:
shell: cmd
working-directory: ${{github.test}}
steps:
- run: echo hi
---
{
"jobs": [
{
"type": "job",
"id": "build",
"name": "build",
"if": {
"type": 3,
"expr": "success()"
},
"defaults": {
"type": 2,
"map": [
{
"Key": "run",
"Value": {
"type": 2,
"map": [
{
"Key": "shell",
"Value": "cmd"
},
{
"Key": "working-directory",
"Value": {
"type": 3,
"expr": "github.test"
}
}
]
}
}
]
},
"runs-on": "linux",
"steps": [
{
"id": "__run",
"if": {
"type": 3,
"expr": "success()"
},
"run": "echo hi"
}
]
}
]
}

Some files were not shown because too many files have changed in this diff Show More