--- name: "Metadata: Label pull requests CI status" on: workflow_run: workflows: - "Pre-commit consistency check" - "Charts: Lint and test" types: - completed jobs: label-precommit: name: Label pre-commit status runs-on: ubuntu-20.04 if: "${{ github.event.workflow.name == 'Pre-commit consistency check' }}" steps: - uses: getsentry/action-github-app-token@v1 id: get-app-token with: app_id: ${{ secrets.K8S_AT_HOME_APP_ID }} private_key: ${{ secrets.K8S_AT_HOME_APP_PRIVATE_KEY }} - name: "Get information about the origin 'CI' run" uses: potiuk/get-workflow-origin@v1_3 id: source-run-info with: token: ${{ steps.get-app-token.outputs.token }} sourceRunId: ${{ github.event.workflow_run.id }} # CI Passed - name: "add label: ok" uses: actions-ecosystem/action-add-labels@v1 if: ${{ github.event.workflow_run.conclusion == 'success' }} with: github_token: ${{ steps.get-app-token.outputs.token }} number: ${{ steps.source-run-info.outputs.pullRequestNumber }} labels: "precommit:ok" - name: "remove label: failed" uses: actions-ecosystem/action-remove-labels@v1 if: ${{ github.event.workflow_run.conclusion == 'success' }} with: github_token: ${{ steps.get-app-token.outputs.token }} number: ${{ steps.source-run-info.outputs.pullRequestNumber }} labels: "precommit:failed" # CI Failed - name: "add label: failed" uses: actions-ecosystem/action-add-labels@v1 if: ${{ github.event.workflow_run.conclusion == 'failure' }} with: github_token: ${{ steps.get-app-token.outputs.token }} number: ${{ steps.source-run-info.outputs.pullRequestNumber }} labels: "precommit:failed" - name: "remove label: ok" uses: actions-ecosystem/action-remove-labels@v1 if: ${{ github.event.workflow_run.conclusion == 'failure' }} with: github_token: ${{ steps.get-app-token.outputs.token }} number: ${{ steps.source-run-info.outputs.pullRequestNumber }} labels: "precommit:ok" label-lint-install: name: Label lint and install status runs-on: ubuntu-20.04 if: "${{ github.event.workflow.name == 'Charts: Lint and test' }}" steps: - uses: getsentry/action-github-app-token@v1 id: get-app-token with: app_id: ${{ secrets.K8S_AT_HOME_APP_ID }} private_key: ${{ secrets.K8S_AT_HOME_APP_PRIVATE_KEY }} - name: "Get information about the origin 'CI' run" uses: potiuk/get-workflow-origin@v1_3 id: source-run-info with: token: ${{ steps.get-app-token.outputs.token }} sourceRunId: ${{ github.event.workflow_run.id }} - name: "Get workflow job status" uses: actions/github-script@v4 id: get-workflow-jobs with: github-token: ${{ steps.get-app-token.outputs.token }} script: | const wfJobs = await github.actions.listJobsForWorkflowRun({ owner: context.repo.owner, repo: context.repo.repo, run_id: context.payload.workflow_run.id, }) function getJobStatus(arrJobs: any[], name: string) { for (const job of arrJobs) { if (job.name === name) { return job.conclusion } } } return { lint: getJobStatus(result, 'Lint charts'), install: getJobStatus(result, 'Install successful') } - name: Get result run: echo "${{steps.get-workflow-jobs.outputs.result.lint}}" # # CI Passed # - name: "add label: ok" # uses: actions-ecosystem/action-add-labels@v1 # if: ${{ github.event.workflow_run.conclusion == 'success' }} # with: # github_token: ${{ steps.get-app-token.outputs.token }} # number: ${{ needs.get-info.outputs.pullRequestNumber }} # labels: "lint:ok" # - name: "remove label: failed" # uses: actions-ecosystem/action-remove-labels@v1 # if: ${{ github.event.workflow_run.conclusion == 'success' }} # with: # github_token: ${{ steps.get-app-token.outputs.token }} # number: ${{ needs.get-info.outputs.pullRequestNumber }} # labels: "lint:failed" # # CI Failed # - name: "add label: failed" # uses: actions-ecosystem/action-add-labels@v1 # if: ${{ github.event.workflow_run.conclusion == 'failure' }} # with: # github_token: ${{ steps.get-app-token.outputs.token }} # number: ${{ needs.get-info.outputs.pullRequestNumber }} # labels: "lint:failed" # - name: "remove label: ok" # uses: actions-ecosystem/action-remove-labels@v1 # if: ${{ github.event.workflow_run.conclusion == 'failure' }} # with: # github_token: ${{ steps.get-app-token.outputs.token }} # number: ${{ needs.get-info.outputs.pullRequestNumber }} # labels: "lint:ok"