You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@airflow.apache.org by po...@apache.org on 2020/12/27 14:02:11 UTC
[airflow-checks-action] 09/27: Fix build pipeline
This is an automated email from the ASF dual-hosted git repository.
potiuk pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/airflow-checks-action.git
commit 297d38e67227bd87efedf3ad97cce96b180777a5
Author: Louis Brunner <lo...@gmail.com>
AuthorDate: Sat Feb 29 22:02:22 2020 +0000
Fix build pipeline
---
.github/workflows/examples.yml | 33 +++++++++++++++++----------------
action.yml | 3 +++
dist/index.js | 2 +-
src/checks.ts | 6 ++++++
src/inputs.ts | 13 ++++++++++++-
src/namespaces/Inputs.ts | 3 +++
6 files changed, 42 insertions(+), 18 deletions(-)
diff --git a/.github/workflows/examples.yml b/.github/workflows/examples.yml
index 301e1d0..b970e6f 100644
--- a/.github/workflows/examples.yml
+++ b/.github/workflows/examples.yml
@@ -77,17 +77,7 @@ jobs:
token: ${{ secrets.GITHUB_TOKEN }}
name: Test Basic Action Required
conclusion: action_required
-
- ## Based on command
- test_with_annotation:
- runs-on: ubuntu-latest
- steps:
- - uses: actions/checkout@v1
- - uses: ./
- with:
- token: ${{ secrets.GITHUB_TOKEN }}
- name: Test Advanced With Output
- conclusion: success
+ action_url: https://example.com
## With annotations
test_with_annotations:
@@ -111,7 +101,10 @@ jobs:
- uses: actions/checkout@v1
- id: annotations
run: |
- echo ::set-output name=value::{"path":"README.md","start_line":1,"end_line":2,"message":"Check your spelling for 'banaas'.","annotation_level":"warning"}
+ echo ::set-output name=value::$ANNOTATIONS
+ env:
+ ANNOTATIONS: |
+ {"path":"README.md","start_line":1,"end_line":2,"message":"Check your spelling for 'banaas'.","annotation_level":"warning"}
- uses: ./
with:
token: ${{ secrets.GITHUB_TOKEN }}
@@ -144,7 +137,10 @@ jobs:
- uses: actions/checkout@v1
- id: images
run: |
- echo ::set-output name=value::{"alt":"Cool pic","image_url":"https://via.placeholder.com/150","caption":"Cool description"}
+ echo ::set-output name=value::$IMAGES
+ env:
+ IMAGES: |
+ {"alt":"Cool pic","image_url":"https://via.placeholder.com/150","caption":"Cool description"}
- uses: ./
with:
token: ${{ secrets.GITHUB_TOKEN }}
@@ -166,6 +162,7 @@ jobs:
token: ${{ secrets.GITHUB_TOKEN }}
name: Test With Actions
conclusion: success
+ action_url: https://example.com
actions: |
[{"label":"Click Me","description":"Click me to get free RAM","identifier":"sent_to_webhook"}]
@@ -175,12 +172,16 @@ jobs:
- uses: actions/checkout@v1
- id: actions
run: |
- echo ::set-output name=value::{"label":"Click Me","description":"Click me to get free RAM","identifier":"sent_to_webhook"}
+ echo ::set-output name=value::$ACTIONS
+ env:
+ ACTIONS: |
+ {"label":"Click Me","description":"Click me to get free RAM","identifier":"sent_to_webhook"}
- uses: ./
with:
token: ${{ secrets.GITHUB_TOKEN }}
name: Test With Actions From Run
conclusion: success
+ action_url: https://example.com
# output.summary is required with actions!
output: |
{"summary":"Some warnings in README.md"}
@@ -227,7 +228,7 @@ jobs:
with:
token: ${{ secrets.GITHUB_TOKEN }}
name: Test Based On Job (Success)
- conclusion: ${{ job }}
+ conclusion: ${{ job.status }}
test_based_job_failure:
runs-on: ubuntu-latest
@@ -239,4 +240,4 @@ jobs:
with:
token: ${{ secrets.GITHUB_TOKEN }}
name: Test Based On Job (Failure)
- conclusion: ${{ job }}
+ conclusion: ${{ job.status }}
diff --git a/action.yml b/action.yml
index 125221d..3310b94 100644
--- a/action.yml
+++ b/action.yml
@@ -15,6 +15,9 @@ inputs:
description: 'the status of your check'
required: false
default: completed
+ action_url:
+ description: 'the url to link to when using action_required as conclusion'
+ required: false
output:
description: 'the output of your check'
required: false
diff --git a/dist/index.js b/dist/index.js
index c5a551b..5b4f331 100644
--- a/dist/index.js
+++ b/dist/index.js
@@ -1 +1 @@
-module.exports=function(e,t){"use strict";var r={};function __webpack_require__(t){if(r[t]){return r[t].exports}var i=r[t]={i:t,l:false,exports:{}};e[t].call(i.exports,i,i.exports,__webpack_require__);i.l=true;return i.exports}__webpack_require__.ab=__dirname+"/";function startup(){return __webpack_require__(198)}return startup()}({0:function(e,t,r){const{requestLog:i}=r(916);const{restEndpointMethods:n}=r(842);const s=r(529);const o=[r(190),r(19),i,r(148),n,r(430),r(850)];const a=s.plug [...]
\ No newline at end of file
+module.exports=function(e,t){"use strict";var r={};function __webpack_require__(t){if(r[t]){return r[t].exports}var i=r[t]={i:t,l:false,exports:{}};e[t].call(i.exports,i,i.exports,__webpack_require__);i.l=true;return i.exports}__webpack_require__.ab=__dirname+"/";function startup(){return __webpack_require__(198)}return startup()}({0:function(e,t,r){const{requestLog:i}=r(916);const{restEndpointMethods:n}=r(842);const s=r(529);const o=[r(190),r(19),i,r(148),n,r(430),r(850)];const a=s.plug [...]
\ No newline at end of file
diff --git a/src/checks.ts b/src/checks.ts
index 8271217..7b34ad5 100644
--- a/src/checks.ts
+++ b/src/checks.ts
@@ -14,17 +14,23 @@ const unpackInputs = (inputs: Inputs.Args): object => {
let output;
if (inputs.output) {
output = {
+ title: inputs.name,
summary: inputs.output.summary,
text: inputs.output.text_description,
actions: inputs.actions,
images: inputs.images,
};
}
+ const more: {details_url?: string} = {};
+ if (inputs.conclusion === Inputs.Conclusion.ActionRequired || inputs.actions) {
+ more.details_url = inputs.actionURL;
+ }
return {
status: inputs.status.toString(),
conclusion: inputs.conclusion.toString(),
output,
actions: inputs.actions,
+ ...more,
};
};
diff --git a/src/inputs.ts b/src/inputs.ts
index c2e734e..5c84542 100644
--- a/src/inputs.ts
+++ b/src/inputs.ts
@@ -20,7 +20,8 @@ export const parseInputs = (getInput: GetInput): Inputs.Args => {
const token = getInput('token', {required: true});
const name = getInput('name', {required: true});
const status = getInput('status', {required: true}) as Inputs.Status;
- const conclusion = getInput('conclusion', {required: true}) as Inputs.Conclusion;
+ const conclusion = getInput('conclusion', {required: true}).toLowerCase() as Inputs.Conclusion;
+ const actionURL = getInput('action_url');
if (!Object.values(Inputs.Status).includes(status)) {
throw new Error(`invalid value for 'status': '${status}'`);
@@ -35,12 +36,22 @@ export const parseInputs = (getInput: GetInput): Inputs.Args => {
const images = parseJSON<Inputs.Images>(getInput, 'images');
const actions = parseJSON<Inputs.Actions>(getInput, 'actions');
+ if (!actionURL && (conclusion === Inputs.Conclusion.ActionRequired || actions)) {
+ throw new Error(`missing value for 'action_url'`);
+ }
+
+ if ((!output || !output.summary) && (annotations || images)) {
+ throw new Error(`missing value for 'output.summary'`);
+ }
+
return {
name,
token,
status,
conclusion,
+ actionURL,
+
output,
annotations,
images,
diff --git a/src/namespaces/Inputs.ts b/src/namespaces/Inputs.ts
index 9bfcba3..d4ff931 100644
--- a/src/namespaces/Inputs.ts
+++ b/src/namespaces/Inputs.ts
@@ -5,6 +5,9 @@ export type Args = {
token: string;
conclusion: Conclusion;
status: Status;
+
+ actionURL: string;
+
output?: Output;
annotations?: Annotations;
images?: Images;