rcc-status #42
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# Workflow to update the status of a commit for the R-CMD-check workflow | |
# Necessary because remote PRs cannot update the status of the commit | |
on: | |
workflow_run: | |
workflows: | |
- rcc | |
types: | |
- requested | |
- completed | |
name: rcc-status | |
jobs: | |
rcc-status: | |
runs-on: ubuntu-latest | |
name: "Update commit status" | |
# Only run if triggered by rcc workflow | |
if: github.event.workflow_run.name == 'rcc' | |
steps: | |
- name: "Update commit status" | |
env: | |
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
run: | | |
set -x | |
if [ "${{ github.event.workflow_run.status }}" == "completed" ]; then | |
if [ "${{ github.event.workflow_run.conclusion }}" == "success" ]; then | |
state="success" | |
else | |
state="failure" | |
fi | |
# Read artifact ID | |
artifact_id=$(gh api \ | |
-H "Accept: application/vnd.github+json" \ | |
-H "X-GitHub-Api-Version: 2022-11-28" \ | |
repos/${{ github.repository }}/actions/runs/${{ github.event.workflow_run.id }}/artifacts | jq -r '.artifacts[] | select(.name == "rcc-smoke-sha") | .id') | |
if [ -n "${artifact_id}" ]; then | |
# Download artifact | |
curl -L -o rcc-smoke-sha.zip \ | |
-H "Accept: application/vnd.github+json" \ | |
-H "Authorization: Bearer ${GH_TOKEN}" \ | |
-H "X-GitHub-Api-Version: 2022-11-28" \ | |
https://api.github.com/repos/${{ github.repository }}/actions/artifacts/${artifact_id}/zip | |
# Unzip artifact | |
unzip rcc-smoke-sha.zip | |
# Read artifact | |
sha=$(cat rcc-smoke-sha.txt) | |
# Clean up | |
rm rcc-smoke-sha.zip rcc-smoke-sha.txt | |
fi | |
else | |
state="pending" | |
fi | |
if [ -z "${sha}" ]; then | |
sha=${{ github.event.workflow_run.head_sha }} | |
fi | |
html_url=${{ github.event.workflow_run.html_url }} | |
description=${{ github.event.workflow_run.name }} | |
gh api \ | |
--method POST \ | |
-H "Accept: application/vnd.github+json" \ | |
-H "X-GitHub-Api-Version: 2022-11-28" \ | |
repos/${{ github.repository }}/statuses/${sha} \ | |
-f "state=${state}" -f "target_url=${html_url}" -f "description=${description}" -f "context=rcc" | |
shell: bash |