Skip to content

DCO Workflow Complete #8857

DCO Workflow Complete

DCO Workflow Complete #8857

name: DCO Workflow Complete
on:
workflow_run:
workflows: ["DCO test"]
types: [completed]
env:
OPP_PRODUCTION_TYPE: "k8s"
jobs:
pr:
runs-on: ubuntu-latest
steps:
- name: 'Download artifact'
uses: actions/github-script@v6
with:
script: |
var artifacts = await github.rest.actions.listWorkflowRunArtifacts({
owner: context.repo.owner,
repo: context.repo.repo,
run_id: ${{github.event.workflow_run.id }},
});
var matchArtifact = artifacts.data.artifacts.filter((artifact) => {
return artifact.name == "pr"
})[0];
var download = await github.rest.actions.downloadArtifact({
owner: context.repo.owner,
repo: context.repo.repo,
artifact_id: matchArtifact.id,
archive_format: 'zip',
});
var fs = require('fs');
fs.writeFileSync('${{github.workspace}}/pr.zip', Buffer.from(download.data));
- run: unzip pr.zip
- name: 'PR Number'
id: pr-number
run: |
PR=$(tr -dc [0-9] <./NR)
[ -z "$PR" ] && echo "Invalid PR number" && exit 1
echo "pr=${PR}" >> $GITHUB_OUTPUT
- uses: actions/github-script@v6
id: pr-labels
continue-on-error: true
with:
github-token: ${{ secrets.GITHUB_TOKEN }}
script: |
const labels = await github.rest.issues.listLabelsOnIssue({
issue_number: ${{ steps.pr-number.outputs.pr }},
owner: context.repo.owner,
repo: context.repo.repo
})
return labels.data
outputs:
pr: "${{ steps.pr-number.outputs.pr }}"
on-success:
runs-on: ubuntu-latest
if: github.event.workflow_run.conclusion == 'success'
needs: [pr]
steps:
- name: "Removing dco-failed label"
if: needs.pr.outputs.pr != '0'
uses: actions/github-script@v6
continue-on-error: true
env:
PR: "${{ needs.pr.outputs.pr }}"
with:
github-token: ${{secrets.GITHUB_TOKEN}}
script: |
github.rest.issues.removeLabel({
issue_number: process.env.PR,
owner: context.repo.owner,
repo: context.repo.repo,
name: 'dco-failed'
})
# - uses: actions/github-script@v6
# if: |
# (!contains(fromJson(steps.pr-labels.outputs.result).*.name, 'do-not-merge/work-in-progress')) &&
# (!contains(fromJson(steps.pr-labels.outputs.result).*.name, 'do-not-merge/hold'))
# continue-on-error: true
# with:
# github-token: ${{ secrets.FRAMEWORK_MERGE }}
# script: |
# github.rest.issues.createComment({
# issue_number: ${{ needs.pr.outputs.pr }},
# owner: context.repo.owner,
# repo: context.repo.repo,
# body: '/merge possible'
# })
on-failure:
runs-on: ubuntu-latest
if: github.event.workflow_run.conclusion == 'failure'
needs: [pr]
steps:
- name: "Setting dco-failed label"
uses: actions/github-script@v6
continue-on-error: true
with:
github-token: ${{secrets.GITHUB_TOKEN}}
script: |
github.rest.issues.addLabels({
issue_number: ${{ needs.pr.outputs.pr }},
owner: context.repo.owner,
repo: context.repo.repo,
labels: ['dco-failed']
})