Skip to content

Commit

Permalink
Merge pull request #121 from ProteGO-Safe/release/4.5.0
Browse files Browse the repository at this point in the history
Release/4.5.0
  • Loading branch information
qLb authored May 21, 2021
2 parents 735e1c0 + b182fd3 commit 9617e7b
Show file tree
Hide file tree
Showing 32 changed files with 694 additions and 1,146 deletions.
138 changes: 136 additions & 2 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -105,7 +105,7 @@ jobs:
shell: bash

- name: mvn test
run: 'mvn test --log-file efgs-downloader-tests-result.txt'
run: 'mvn test | tee efgs-downloader-tests-result.txt'
shell: bash

- name: Archive test results
Expand Down Expand Up @@ -184,7 +184,7 @@ jobs:
architecture: x64

- name: mvn test
run: 'mvn test --log-file efgs-uploader-tests-result.txt'
run: 'mvn test | tee efgs-uploader-tests-result.txt'
if: env.ENVIRONMENT != 'PROD' || env.PUSH_MODE == 'true'
shell: bash

Expand Down Expand Up @@ -375,3 +375,137 @@ jobs:
uses: w9jds/firebase-action@master
with:
args: deploy --only $FUNCTIONS --project $PROJECT_ID

notify:
if: always()
name: Notify
needs:
- Lint_TS
- deploy-efgs-uploader
- test-efgs-uploader
- deploy-efgs-downloader
runs-on: ubuntu-latest
steps:
- name: Prepare Slack message
id: status
uses: actions/github-script@v3
with:
script: |
////////////////////////////////////
// retrieve workflow run data
////////////////////////////////////
console.log("get workflow run")
const wf_run = await github.actions.getWorkflowRun({
owner: context.repo.owner,
repo: context.repo.repo,
run_id: ${{ github.run_id }}
})
console.log(wf_run.data)
console.log("get jobs for workflow run:", wf_run.data.jobs_url)
const jobs_response = await github.request(wf_run.data.jobs_url)
////////////////////////////////////
// build slack notification message
////////////////////////////////////
// some utility functions
var date_diff_func = function(start, end) {
var duration = end - start
// format the duration
var delta = duration / 1000
var days = Math.floor(delta / 86400)
delta -= days * 86400
var hours = Math.floor(delta / 3600) % 24
delta -= hours * 3600
var minutes = Math.floor(delta / 60) % 60
delta -= minutes * 60
var seconds = Math.floor(delta % 60)
var format_func = function(v, text, check) {
if (v <= 0 && check) {
return ""
} else {
return v + text
}
}
return format_func(days, "d", true) + format_func(hours, "h", true) + format_func(minutes, "m", true) + format_func(seconds, "s", false)
}
var status_icon_func = function(s) {
switch (s) {
case "w_success":
return ":white_check_mark:"
case "w_failure":
return ":no_entry:"
case "w_cancelled":
return ":warning:"
case "success":
return "\u2713"
case "failure":
return "\u2717"
default:
return "\u20e0"
}
}
const commit = "${{ github.sha }}".substr(0, 6)
var pr = ""
for (p of wf_run.data.pull_requests) {
pr += ",<"+ p.url + "|#" + p.number + ">"
}
if (pr != "") {
pr = "for " + pr.substr(1)
}
// build the message
var fields = []
var is_wf_success = true
var is_wf_failure = false
for (j of jobs_response.data.jobs) {
console.log(j.name, ":", j.status, j.conclusion, j.started_at, j.completed_at)
// ignore the current job running this script
if (j.status != "completed") {
continue
}
if (j.conclusion != "success") {
is_wf_success = false
}
if (j.conclusion == "failure") {
is_wf_failure = true
}
fields.push({
type: "mrkdwn",
text: status_icon_func(j.conclusion) + " <" + j.html_url + "|" + j.name + ">\n \u21b3 completed in " + date_diff_func(new Date(j.started_at), new Date(j.completed_at))
})
}
var workflow_status = "w_cancelled"
if (is_wf_success) {
workflow_status = "w_success"
} else if (is_wf_failure) {
workflow_status = "w_failure"
}
var slack_msg = {
blocks: [
{
type: "section",
text: {
type: "mrkdwn",
text: "<https://github.com/${{ github.repository }}|*${{ github.repository }}*>\nfrom *${{ github.ref }}@" + commit + "*"
}
},
{
type: "section",
text: {
type: "mrkdwn",
text: status_icon_func(workflow_status) + " *${{ github.workflow }}* " + pr + "\nWorkflow run <" + wf_run.data.html_url + "|#${{ github.run_number }}> completed in " + date_diff_func(new Date(wf_run.data.created_at), new Date(wf_run.data.updated_at))
}
},
{
type: "divider"
},
{
type: "section",
fields: fields
}
]
}
return slack_msg
- name: Send to Slack
if: success()
run: |
curl -X POST ${{ secrets.SLACK_WEBHOOK_URL }} -H "Content-type: application/json" --data '${{ steps.status.outputs.result }}'
Loading

0 comments on commit 9617e7b

Please sign in to comment.