Merge branch 'main' into thyeggman/reusable-workflow-outputs

This commit is contained in:
Jacob Wallraff
2023-02-21 16:00:10 -08:00
105 changed files with 966 additions and 163 deletions
+1 -1
View File
@@ -1,6 +1,6 @@
{
"name": "@github/actions-expressions",
"version": "0.1.148",
"version": "0.1.150",
"license": "MIT",
"type": "module",
"source": "./src/index.ts",
+3 -3
View File
@@ -1,6 +1,6 @@
{
"name": "@github/actions-languageserver",
"version": "0.1.148",
"version": "0.1.150",
"description": "Language server for GitHub Actions",
"license": "MIT",
"type": "module",
@@ -38,8 +38,8 @@
"watch": "tsc --build tsconfig.build.json --watch"
},
"dependencies": {
"@github/actions-languageservice": "^0.1.148",
"@github/actions-workflow-parser": "^0.1.148",
"@github/actions-languageservice": "^0.1.150",
"@github/actions-workflow-parser": "^0.1.150",
"@octokit/rest": "^19.0.7",
"vscode-languageserver": "^8.0.2",
"vscode-languageserver-textdocument": "^1.0.7",
+5 -1
View File
@@ -1,8 +1,12 @@
import {log} from "@github/actions-languageservice/log";
export function timeOperation<T>(name: string, f: () => T): T {
export async function timeOperation<T>(name: string, f: () => T): Promise<T> {
const start = Date.now();
const result = f();
if (result instanceof Promise) {
await result;
}
const end = Date.now();
log(`${name} took ${end - start}ms`);
+3 -3
View File
@@ -1,6 +1,6 @@
{
"name": "@github/actions-languageservice",
"version": "0.1.148",
"version": "0.1.150",
"description": "Language service for GitHub Actions",
"license": "MIT",
"type": "module",
@@ -39,8 +39,8 @@
"watch": "tsc --build tsconfig.build.json --watch"
},
"dependencies": {
"@github/actions-expressions": "^0.1.148",
"@github/actions-workflow-parser": "^0.1.148",
"@github/actions-expressions": "^0.1.150",
"@github/actions-workflow-parser": "^0.1.150",
"vscode-languageserver-textdocument": "^1.0.7",
"vscode-languageserver-types": "^3.17.2",
"yaml": "^2.1.1"
+2 -2
View File
@@ -1,6 +1,6 @@
{
"name": "@github/actions-workflow-parser",
"version": "0.1.148",
"version": "0.1.150",
"license": "MIT",
"type": "module",
"source": "./src/index.ts",
@@ -40,7 +40,7 @@
"watch": "tsc --build tsconfig.build.json --watch"
},
"dependencies": {
"@github/actions-expressions": "^0.1.148",
"@github/actions-expressions": "^0.1.150",
"cronstrue": "^2.21.0",
"yaml": "^2.0.0-8"
},
+4 -1
View File
@@ -20,10 +20,13 @@ const nullTrace: TraceWriter = {
};
const testFiles = "./testdata/reader";
const skippedTestsFile = "./testdata/skipped-tests.txt";
describe("x-lang tests", () => {
const files = fs.readdirSync(testFiles);
const skippedTests = new Set(fs.readFileSync(skippedTestsFile, "utf8").split(/\n/));
for (const file of files) {
const fileName = path.join(testFiles, file);
@@ -42,7 +45,7 @@ describe("x-lang tests", () => {
expect(testDocs.length).toBeGreaterThanOrEqual(3);
const testOptions: TestOptions = YAML.parse(testDocs[0]);
const unsupportedTest = contains(testOptions.skip, "TypeScript");
const unsupportedTest = skippedTests.has(file);
const test = async () => {
const testFileName = ".github/workflows" + fileName.substring(fileName.lastIndexOf("/"));
@@ -0,0 +1,100 @@
include-source: false # Drop file/line/col from output
---
on: push
jobs:
build:
runs-on: ubuntu-latest
steps:
# Env is a string-string mapping. Null, bool, and numbers are all coerced to strings.
#
# When numbers are coerced to string, choosing too high/low of a precision are both problematic.
# This is due to how fractional numbers are represented in double-precision floating point format.
#
# The chosen format specifier produces the best results overall results.
- run: printenv
env:
"null": !!null
bool1: !!bool true
bool2: !!bool false
num1: !!float 0.84551240822557006 # Coerces to string "0.84551240822557"
num2: !!float 123456
num3: !!float 0.123456
num4: !!float 123456.123456
num5: !!float 1587106672383762434 # Coerces to string "1.58710667238376E+18" ; It would be nicer if this number successfully round-tripped, i.e. coerces to string "1587106672383762434"
num6: !!float .inf
num7: !!float -.inf
num8: !!float .nan
---
{
"jobs": [
{
"type": "job",
"id": "build",
"name": "build",
"if": {
"type": 3,
"expr": "success()"
},
"runs-on": "ubuntu-latest",
"steps": [
{
"id": "__run",
"if": {
"type": 3,
"expr": "success()"
},
"env": {
"type": 2,
"map": [
{
"Key": "null",
"Value": ""
},
{
"Key": "bool1",
"Value": "true"
},
{
"Key": "bool2",
"Value": "false"
},
{
"Key": "num1",
"Value": "0.84551240822557"
},
{
"Key": "num2",
"Value": "123456"
},
{
"Key": "num3",
"Value": "0.123456"
},
{
"Key": "num4",
"Value": "123456.123456"
},
{
"Key": "num5",
"Value": "1.58710667238376E+18"
},
{
"Key": "num6",
"Value": "Infinity"
},
{
"Key": "num7",
"Value": "-Infinity"
},
{
"Key": "num8",
"Value": "NaN"
}
]
},
"run": "printenv"
}
]
}
]
}
@@ -1,6 +1,4 @@
include-source: false # Drop file/line/col from output
skip:
- TypeScript
---
on: push
concurrency:
@@ -1,4 +1,6 @@
include-source: false # Drop file/line/col from output
skip:
- TypeScript
---
on: push
jobs:
@@ -1,6 +1,4 @@
include-source: false # Drop file/line/col from output
skip:
- TypeScript
---
on: push
jobs:
@@ -1,6 +1,4 @@
include-source: false # Drop file/line/col from output
skip:
- TypeScript
---
on: push
jobs:
@@ -1,6 +1,4 @@
include-source: false # Drop file/line/col from output
skip:
- TypeScript
---
on: push
jobs:
@@ -1,6 +1,4 @@
include-source: false # Drop file/line/col from output
skip:
- TypeScript
---
on: push
jobs:
@@ -1,6 +1,4 @@
include-source: false # Drop file/line/col from output
skip:
- TypeScript
---
on: push
jobs:
@@ -1,6 +1,4 @@
include-source: false # Drop file/line/col from output
skip:
- TypeScript
max-depth: 5
---
on: push
@@ -1,6 +1,4 @@
include-source: false # Drop file/line/col from output
skip:
- TypeScript
max-file-size: 124
---
on: push
@@ -1,7 +1,6 @@
include-source: false # Drop file/line/col from output
skip:
- Go
- TypeScript
max-job-limit: 8
---
on: push
@@ -1,7 +1,5 @@
include-source: false # Drop file/line/col from output
skip:
- TypeScript
max-result-size: 768
max-result-size: 1141
---
on: push
jobs:
@@ -1,7 +1,6 @@
include-source: false # Drop file/line/col from output
skip:
- Go
- TypeScript
---
on: push
jobs:
@@ -1,7 +1,6 @@
include-source: false # Drop file/line/col from output
skip:
- Go
- TypeScript
max-nested-reusable-workflows-depth: 2
---
on: push
@@ -1,7 +1,6 @@
include-source: false # Drop file/line/col from output
skip:
- Go
- TypeScript
---
permissions:
actions: write
@@ -1,7 +1,6 @@
include-source: false # Drop file/line/col from output
skip:
- Go
- TypeScript
---
permissions:
actions: write
@@ -1,7 +1,6 @@
include-source: false # Drop file/line/col from output
skip:
- Go
- TypeScript
---
permissions:
actions: write
@@ -1,7 +1,6 @@
include-source: false # Drop file/line/col from output
skip:
- Go
- TypeScript
---
permissions:
actions: write
@@ -1,6 +1,4 @@
include-source: false # Drop file/line/col from output
skip:
- Go
---
on: push
jobs:
@@ -2,7 +2,6 @@ include-source: false # Drop file/line/col from output
max-result-size: 2048
skip:
- Go
- TypeScript
---
on: push
jobs:
@@ -21,10 +20,7 @@ jobs:
{
"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."
"Message": "In .github/workflows/errors-reusable-workflow-max-result-size.yml (Line: 4, Col: 20): Error from called workflow contoso/templates/.github/workflows/deploy.yml@v1: Maximum object size exceeded"
}
]
}
@@ -1,7 +1,6 @@
include-source: false # Drop file/line/col from output
skip:
- Go
- TypeScript
permissions-policy: LimitedRead
---
on: push
@@ -1,7 +1,6 @@
include-source: false # Drop file/line/col from output
skip:
- Go
- TypeScript
---
on: push
jobs:
@@ -1,7 +1,6 @@
include-source: false # Drop file/line/col from output
skip:
- Go
- TypeScript
---
on: push
permissions:
@@ -1,7 +1,6 @@
include-source: false # Drop file/line/col from output
skip:
- Go
- TypeScript
permissions-policy: LimitedRead
---
on: push
@@ -1,7 +1,6 @@
include-source: false # Drop file/line/col from output
skip:
- Go
- TypeScript
permissions-policy: LimitedRead
---
on: push
@@ -1,7 +1,6 @@
include-source: false # Drop file/line/col from output
skip:
- Go
- TypeScript
permissions-policy: LimitedRead
---
on: push
@@ -1,7 +1,6 @@
include-source: false # Drop file/line/col from output
skip:
- Go
- TypeScript
permissions-policy: LimitedRead
---
on: push
@@ -1,7 +1,6 @@
include-source: false # Drop file/line/col from output
skip:
- Go
- TypeScript
permissions-policy: LimitedRead
---
on: push
@@ -1,7 +1,6 @@
include-source: false # Drop file/line/col from output
skip:
- Go
- TypeScript
permissions-policy: LimitedRead
---
on: push
@@ -1,7 +1,6 @@
include-source: false # Drop file/line/col from output
skip:
- Go
- TypeScript
permissions-policy: LimitedRead
---
on: push
@@ -1,7 +1,6 @@
include-source: false # Drop file/line/col from output
skip:
- Go
- TypeScript
permissions-policy: LimitedRead
---
on: push
@@ -1,7 +1,6 @@
include-source: false # Drop file/line/col from output
skip:
- Go
- TypeScript
permissions-policy: LimitedRead
---
on: push
@@ -1,7 +1,6 @@
include-source: false # Drop file/line/col from output
skip:
- Go
- TypeScript
permissions-policy: LimitedRead
---
on: push
@@ -1,7 +1,6 @@
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
---
@@ -1,7 +1,6 @@
include-source: false # Drop file/line/col from output
skip:
- Go
- TypeScript
permissions-policy: LimitedRead
---
on: push
@@ -1,7 +1,6 @@
include-source: false # Drop file/line/col from output
skip:
- Go
- TypeScript
permissions-policy: LimitedRead
---
on: push
@@ -1,7 +1,6 @@
include-source: false # Drop file/line/col from output
skip:
- Go
- TypeScript
permissions-policy: LimitedRead
---
on: push
@@ -1,7 +1,6 @@
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
---
@@ -1,7 +1,6 @@
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
---
@@ -1,7 +1,6 @@
include-source: false # Drop file/line/col from output
skip:
- Go
- TypeScript
permissions-policy: LimitedRead
---
on: push
@@ -14,6 +13,8 @@ contoso/templates/.github/workflows/deploy.yml@v1
on: workflow_call
permissions:
actions: write
contents: write
packages: write
jobs:
deploy:
runs-on: ubuntu-latest
@@ -23,7 +24,7 @@ jobs:
{
"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'."
"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, contents: write, packages: write', but is only allowed 'actions: none, contents: read, packages: read'."
}
]
}
@@ -1,7 +1,6 @@
include-source: false # Drop file/line/col from output
skip:
- Go
- TypeScript
---
on: push
jobs:
@@ -1,7 +1,6 @@
include-source: false # Drop file/line/col from output
skip:
- Go
- TypeScript
---
on: push
permissions:
@@ -1,6 +1,4 @@
include-source: false # Drop file/line/col from output
skip:
- TypeScript
---
name: CI
on:
@@ -1,7 +1,6 @@
include-source: false # Drop file/line/col from output
skip:
- Go
- TypeScript
---
on: push
jobs:
@@ -1,6 +1,4 @@
include-source: false # Drop file/line/col from output
skip:
- TypeScript
---
on: push
jobs:
@@ -1,6 +1,4 @@
include-source: false # Drop file/line/col from output
skip:
- TypeScript
---
on: push
env:
@@ -1,6 +1,4 @@
include-source: false # Drop file/line/col from output
skip:
- TypeScript
---
on: push
jobs:
@@ -0,0 +1,166 @@
# Remove this test when feature flag Actions.FixFileTableOrderOnPartialRerun is rolled out
#
# This test exploits the fact that the test-referenced-workflows-dictionary is sorted.
# When IsPartialRerun=true, the file table is re-written using the keys from the
# test-referenced-workflows-dictionary.
include-source: true # Preserve file/line/col from output
skip:
- Go
is-partial-rerun: true
---
on: push
jobs:
build:
runs-on: ubuntu-latest
steps:
- run: echo hi
deploy-1:
needs: build
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 hi from reusable workflow
---
{
"jobs": [
{
"type": "job",
"id": {
"type": 0,
"file": 1,
"line": 3,
"col": 3,
"lit": "build"
},
"name": {
"type": 0,
"file": 1,
"line": 3,
"col": 3,
"lit": "build"
},
"if": {
"type": 3,
"expr": "success()"
},
"runs-on": {
"type": 0,
"file": 1,
"line": 4,
"col": 14,
"lit": "ubuntu-latest"
},
"steps": [
{
"id": "__run",
"if": {
"type": 3,
"expr": "success()"
},
"run": {
"type": 0,
"file": 1,
"line": 6,
"col": 14,
"lit": "echo hi"
}
}
]
},
{
"type": "reusableWorkflowJob",
"id": {
"type": 0,
"file": 1,
"line": 7,
"col": 3,
"lit": "deploy-1"
},
"name": {
"type": 0,
"file": 1,
"line": 7,
"col": 3,
"lit": "deploy-1"
},
"needs": [
{
"type": 0,
"file": 1,
"line": 8,
"col": 12,
"lit": "build"
}
],
"if": {
"type": 3,
"expr": "success()"
},
"ref": {
"type": 0,
"file": 1,
"line": 9,
"col": 11,
"lit": ".contoso/templates/.github/workflows/deploy.yml@v1"
},
"jobs": [
{
"type": "job",
"id": {
"type": 0,
"file": 2,
"line": 3,
"col": 3,
"lit": "job1"
},
"name": {
"type": 0,
"file": 2,
"line": 3,
"col": 3,
"lit": "job1"
},
"if": {
"type": 3,
"expr": "success()"
},
"runs-on": {
"type": 0,
"file": 2,
"line": 4,
"col": 14,
"lit": "ubuntu-latest"
},
"steps": [
{
"id": "__run",
"if": {
"type": 3,
"expr": "success()"
},
"run": {
"type": 0,
"file": 2,
"line": 6,
"col": 14,
"lit": "echo hi from reusable workflow"
}
}
]
}
]
}
],
"file-table": [
".contoso/templates/.github/workflows/deploy.yml@v1",
".github/workflows/is-partial-rerun.yml"
]
}
-2
View File
@@ -1,6 +1,4 @@
include-source: false # Drop file/line/col from output
skip:
- TypeScript
---
on: push
jobs:
@@ -1,7 +1,6 @@
include-source: false # Drop file/line/col from output
skip:
- Go
- TypeScript
---
on: push
jobs:
@@ -1,7 +1,6 @@
include-source: false # Drop file/line/col from output
skip:
- Go
- TypeScript
---
on: push
jobs:
@@ -1,7 +1,6 @@
include-source: false # Drop file/line/col from output
skip:
- Go
- TypeScript
---
on: push
jobs:
@@ -1,6 +1,4 @@
include-source: false # Drop file/line/col from output
skip:
- TypeScript
---
on: push
jobs:
-2
View File
@@ -1,6 +1,4 @@
include-source: false # Drop file/line/col from output
skip:
- TypeScript
---
on: push
env:
@@ -1,6 +1,4 @@
include-source: false # Drop file/line/col from output
skip:
- TypeScript
---
on: push
permissions:
+35
View File
@@ -52,6 +52,10 @@ jobs:
- label 2
steps:
- run: echo hi
build8:
runs-on: [ inf, -inf, +inf, infinity, NaN, nan, -infinity ] # flow sequence, inf and nan keywords
steps:
- run: echo hi
---
{
"jobs": [
@@ -290,6 +294,37 @@ jobs:
"run": "echo hi"
}
]
},
{
"type": "job",
"id": "build8",
"name": "build8",
"if": {
"type": 3,
"expr": "success()"
},
"runs-on": {
"type": 1,
"seq": [
"inf",
"-inf",
"+inf",
"infinity",
"NaN",
"nan",
"-infinity"
]
},
"steps": [
{
"id": "__run",
"if": {
"type": 3,
"expr": "success()"
},
"run": "echo hi"
}
]
}
]
}
@@ -1,7 +1,6 @@
include-source: false # Drop file/line/col from output
skip:
- Go
- TypeScript
---
on: push
jobs:
@@ -1,6 +1,4 @@
include-source: false # Drop file/line/col from output
skip:
- TypeScript
---
on: push
jobs:
@@ -0,0 +1,52 @@
include-source: false # Drop file/line/col from output
max-result-size: 1128
---
on: push
jobs:
job1:
runs-on: ubuntu-latest
steps:
- run: echo Deploying 1...
- run: echo Deploying 2...
- run: echo Deploying 3...
---
{
"jobs": [
{
"type": "job",
"id": "job1",
"name": "job1",
"if": {
"type": 3,
"expr": "success()"
},
"runs-on": "ubuntu-latest",
"steps": [
{
"id": "__run",
"if": {
"type": 3,
"expr": "success()"
},
"run": "echo Deploying 1..."
},
{
"id": "__run_2",
"if": {
"type": 3,
"expr": "success()"
},
"run": "echo Deploying 2..."
},
{
"id": "__run_3",
"if": {
"type": 3,
"expr": "success()"
},
"run": "echo Deploying 3..."
}
]
}
]
}
-2
View File
@@ -1,6 +1,4 @@
include-source: false # Drop file/line/col from output
skip:
- TypeScript
---
on: push
jobs:
@@ -1,6 +1,4 @@
include-source: false # Drop file/line/col from output
skip:
- TypeScript
---
on: push
jobs:
-2
View File
@@ -1,6 +1,4 @@
include-source: false # Drop file/line/col from output
skip:
- TypeScript
---
# This is a basic workflow to help you get started with Actions
@@ -1,6 +1,4 @@
include-source: false # Drop file/line/col from output
skip:
- TypeScript
---
on:
workflow_dispatch:
@@ -1,6 +1,4 @@
include-source: false # Drop file/line/col from output
skip:
- TypeScript
---
on:
workflow_dispatch:
@@ -1,6 +1,4 @@
include-source: false # Drop file/line/col from output
skip:
- TypeScript
---
on:
workflow_dispatch:
@@ -1,6 +1,4 @@
include-source: false # Drop file/line/col from output
skip:
- TypeScript
---
on: push
permissions:
@@ -1,6 +1,4 @@
include-source: true # Preserve file/line/col in serialized output
skip:
- TypeScript
---
on: push
jobs:
@@ -1,7 +1,4 @@
include-source: true # Preserve file/line/col in serialized output
skip:
- Go
- TypeScript
---
on: push
jobs:
@@ -1,6 +1,4 @@
include-source: true # Preserve file/line/col in serialized output
skip:
- TypeScript
---
# This is meant to cover all the different types of TemplateToken that are output
# with include-source: true. Currently it is missing type 4 (insert expression)
@@ -0,0 +1,54 @@
include-source: false # Drop file/line/col from output
---
on: push
jobs:
call_reusable:
uses: contoso/templates/.github/workflows/deploy.yml@v1
---
contoso/templates/.github/workflows/deploy.yml@v1
---
on:
workflow_call:
jobs:
simple_job:
runs-on: ubuntu-latest
steps:
- run: echo Hello
---
{
"jobs": [
{
"type": "reusableWorkflowJob",
"id": "call_reusable",
"name": "call_reusable",
"needs": [],
"if": {
"type": 3,
"expr": "success()"
},
"ref": "contoso/templates/.github/workflows/deploy.yml@v1",
"jobs": [
{
"type": "job",
"id": "simple_job",
"name": "simple_job",
"if": {
"type": 3,
"expr": "success()"
},
"runs-on": "ubuntu-latest",
"steps": [
{
"id": "__run",
"if": {
"type": 3,
"expr": "success()"
},
"run": "echo Hello"
}
]
}
]
}
]
}
@@ -1,6 +1,4 @@
include-source: false # Drop file/line/col from output
skip:
- Go
---
on: push
jobs:
@@ -1,7 +1,6 @@
include-source: false # Drop file/line/col from output
skip:
- Go
- TypeScript
max-nested-reusable-workflows-depth: 2
---
on: push
@@ -1,7 +1,6 @@
include-source: false # Drop file/line/col from output
skip:
- Go
- TypeScript
max-nested-reusable-workflows-depth: 2
---
on: push
@@ -1,7 +1,6 @@
include-source: false # Drop file/line/col from output
skip:
- Go
- TypeScript
max-nested-reusable-workflows-depth: 3
---
on: push
@@ -0,0 +1,68 @@
include-source: false # Drop file/line/col from output
skip:
- Go
permissions-policy: LimitedRead
---
on: push
jobs:
# Inherit from default permissions policy
build:
uses: contoso/templates/.github/workflows/build.yml@v1
---
contoso/templates/.github/workflows/build.yml@v1
---
permissions:
contents: read
packages: read
on: workflow_call
jobs:
deploy:
runs-on: ubuntu-latest
steps:
- run: echo 1
---
{
"jobs": [
{
"type": "reusableWorkflowJob",
"id": "build",
"name": "build",
"needs": [],
"if": {
"type": 3,
"expr": "success()"
},
"ref": "contoso/templates/.github/workflows/build.yml@v1",
"permissions": {
"contents": "read",
"packages": "read"
},
"jobs": [
{
"type": "job",
"id": "deploy",
"name": "deploy",
"if": {
"type": 3,
"expr": "success()"
},
"permissions": {
"contents": "read",
"packages": "read"
},
"runs-on": "ubuntu-latest",
"steps": [
{
"id": "__run",
"if": {
"type": 3,
"expr": "success()"
},
"run": "echo 1"
}
]
}
]
}
]
}
@@ -1,7 +1,6 @@
include-source: false # Drop file/line/col from output
skip:
- Go
- TypeScript
permissions-policy: LimitedRead
---
on: push
@@ -1,7 +1,6 @@
include-source: false # Drop file/line/col from output
skip:
- Go
- TypeScript
permissions-policy: LimitedRead
---
on: push
@@ -1,7 +1,6 @@
include-source: false # Drop file/line/col from output
skip:
- Go
- TypeScript
permissions-policy: LimitedRead
---
on: push
@@ -0,0 +1,101 @@
include-source: false # Drop file/line/col from output
skip:
- Go
permissions-policy: Write
---
on: push
jobs:
# Inherit from default permissions policy
build:
uses: contoso/templates/.github/workflows/build.yml@v1
# Override
build2:
permissions:
actions: write
uses: contoso/templates/.github/workflows/build.yml@v1
---
contoso/templates/.github/workflows/build.yml@v1
---
on: workflow_call
jobs:
deploy:
runs-on: ubuntu-latest
steps:
- run: echo 1
---
{
"jobs": [
{
"type": "reusableWorkflowJob",
"id": "build",
"name": "build",
"needs": [],
"if": {
"type": 3,
"expr": "success()"
},
"ref": "contoso/templates/.github/workflows/build.yml@v1",
"jobs": [
{
"type": "job",
"id": "deploy",
"name": "deploy",
"if": {
"type": 3,
"expr": "success()"
},
"runs-on": "ubuntu-latest",
"steps": [
{
"id": "__run",
"if": {
"type": 3,
"expr": "success()"
},
"run": "echo 1"
}
]
}
]
},
{
"type": "reusableWorkflowJob",
"id": "build2",
"name": "build2",
"needs": [],
"if": {
"type": 3,
"expr": "success()"
},
"ref": "contoso/templates/.github/workflows/build.yml@v1",
"permissions": {
"actions": "write"
},
"jobs": [
{
"type": "job",
"id": "deploy",
"name": "deploy",
"if": {
"type": 3,
"expr": "success()"
},
"permissions": {
"actions": "write"
},
"runs-on": "ubuntu-latest",
"steps": [
{
"id": "__run",
"if": {
"type": 3,
"expr": "success()"
},
"run": "echo 1"
}
]
}
]
}
]
}
@@ -1,7 +1,6 @@
include-source: false # Drop file/line/col from output
skip:
- Go
- TypeScript
permissions-policy: LimitedRead
---
on: push
@@ -1,6 +1,4 @@
include-source: false # Drop file/line/col from output
skip:
- Go
---
on: push
jobs:
@@ -1,6 +1,4 @@
include-source: false # Drop file/line/col from output
skip:
- Go
---
on: push
jobs:
@@ -1,6 +1,4 @@
include-source: false # Drop file/line/col from output
skip:
- TypeScript
---
on: push
env:
@@ -0,0 +1,79 @@
include-source: false # Drop file/line/col from output
---
on: push
jobs:
build:
runs-on: ubuntu-latest
steps:
- run: echo Value Difference!
env:
MIN: 1345678912345678912
max-double:
runs-on: ubuntu-latest
steps:
- run: echo Value Difference!
env:
MIN: 179769313486231570000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
---
{
"jobs": [
{
"type": "job",
"id": "build",
"name": "build",
"if": {
"type": 3,
"expr": "success()"
},
"runs-on": "ubuntu-latest",
"steps": [
{
"id": "__run",
"if": {
"type": 3,
"expr": "success()"
},
"env": {
"type": 2,
"map": [
{
"Key": "MIN",
"Value": "1.34567891234568E+18"
}
]
},
"run": "echo Value Difference!"
}
]
},
{
"type": "job",
"id": "max-double",
"name": "max-double",
"if": {
"type": 3,
"expr": "success()"
},
"runs-on": "ubuntu-latest",
"steps": [
{
"id": "__run",
"if": {
"type": 3,
"expr": "success()"
},
"env": {
"type": 2,
"map": [
{
"Key": "MIN",
"Value": "1.79769313486232E+308"
}
]
},
"run": "echo Value Difference!"
}
]
}
]
}
@@ -0,0 +1,113 @@
include-source: true # Preserve file/line/col from output
skip:
- Go
skip-reusable-workflows: true # Only supported by C# parser
---
on: push
jobs:
build:
runs-on: ubuntu-latest
steps:
- run: echo hi
deploy-1:
needs: build
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 hi from reusable workflow
---
{
"jobs": [
{
"type": "job",
"id": {
"type": 0,
"file": 1,
"line": 3,
"col": 3,
"lit": "build"
},
"name": {
"type": 0,
"file": 1,
"line": 3,
"col": 3,
"lit": "build"
},
"if": {
"type": 3,
"expr": "success()"
},
"runs-on": {
"type": 0,
"file": 1,
"line": 4,
"col": 14,
"lit": "ubuntu-latest"
},
"steps": [
{
"id": "__run",
"if": {
"type": 3,
"expr": "success()"
},
"run": {
"type": 0,
"file": 1,
"line": 6,
"col": 14,
"lit": "echo hi"
}
}
]
},
{
"type": "reusableWorkflowJob",
"id": {
"type": 0,
"file": 1,
"line": 7,
"col": 3,
"lit": "deploy-1"
},
"name": {
"type": 0,
"file": 1,
"line": 7,
"col": 3,
"lit": "deploy-1"
},
"needs": [
{
"type": 0,
"file": 1,
"line": 8,
"col": 12,
"lit": "build"
}
],
"if": {
"type": 3,
"expr": "success()"
},
"ref": {
"type": 0,
"file": 1,
"line": 9,
"col": 11,
"lit": "contoso/templates/.github/workflows/deploy.yml@v1"
},
"jobs": []
}
],
"file-table": [
".github/workflows/skip-reusable-workflows.yml"
]
}
-2
View File
@@ -1,6 +1,4 @@
include-source: false # Drop file/line/col from output
skip:
- TypeScript
---
on: push
jobs:
+36 -3
View File
@@ -2,19 +2,24 @@ include-source: false # Drop file/line/col from output
---
on: push
jobs:
build:
build1:
runs-on: ubuntu-latest
steps:
- run: echo ${{ github.sha }} # github context
- run: echo ${{ vars.foo }} # vars context
- run: echo ${{ steps.foo }} # steps context
build2:
runs-on: ubuntu-latest
steps:
- run: ${{ '${{ this is an escaped expression }}' }} # escaped expression
- run: ${{ 'it''s an escaped quote' }} # escaped quote
---
{
"jobs": [
{
"type": "job",
"id": "build",
"name": "build",
"id": "build1",
"name": "build1",
"if": {
"type": 3,
"expr": "success()"
@@ -55,6 +60,34 @@ jobs:
}
}
]
},
{
"type": "job",
"id": "build2",
"name": "build2",
"if": {
"type": 3,
"expr": "success()"
},
"runs-on": "ubuntu-latest",
"steps": [
{
"id": "__run",
"if": {
"type": 3,
"expr": "success()"
},
"run": "${{ this is an escaped expression }}"
},
{
"id": "__run_2",
"if": {
"type": 3,
"expr": "success()"
},
"run": "it's an escaped quote"
}
]
}
]
}
@@ -1,6 +1,4 @@
include-source: false # Drop file/line/col from output
skip:
- TypeScript
---
on: push
defaults:
@@ -1,6 +1,4 @@
include-source: false # Drop file/line/col from output
skip:
- TypeScript
---
on: push
jobs:
@@ -16,9 +16,15 @@ jobs:
- 0
- -0
- +0
- 0000
- -0000
- 0xff
- 0xFF
- 0o10
- 0755
- 00755
- +00755
- -00755
# Integer, explicit type
- !!int 1
@@ -64,9 +70,15 @@ jobs:
0,
0,
0,
0,
0,
255,
255,
8,
755,
755,
755,
-755,
1,
-1,
1,
@@ -1,6 +1,4 @@
include-source: false # Drop file/line/col from output
skip:
- TypeScript
---
on: push
jobs:
@@ -1,6 +1,4 @@
include-source: false # Drop file/line/col from output
skip:
- TypeScript
---
on: push
jobs:
@@ -1,6 +1,4 @@
include-source: false # Drop file/line/col from output
skip:
- TypeScript
---
on: push
jobs:
@@ -1,6 +1,4 @@
include-source: false # Drop file/line/col from output
skip:
- TypeScript
---
on: push
jobs:

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