third_party_littlefs/.github/workflows/status.yml
Christopher Haster b84fb6bcc5 Added BUILDDIR, a bit of script reworking
Now littlefs's Makefile can work with a custom build directory
for compilation output. Just set the BUILDDIR variable and the Makefile
will take care of the rest.

make BUILDDIR=build size

This makes it very easy to compare builds with different compile-time
configurations or different cross-compilers.

This meant most of code.py's build isolation is no longer needed,
so revisted the scripts and cleaned/tweaked a number of things.

Also bought code.py in line with coverage.py, fixing some of the
inconsistencies that were created while developing these scripts.

One change to note was removing the inline measuring logic, I realized
this feature is unnecessary thanks to GCC's -fkeep-static-functions and
-fno-inline flags.
2021-01-10 03:21:21 -06:00

98 lines
3.2 KiB
YAML

name: status
on:
workflow_run:
workflows: test
types: completed
jobs:
status:
runs-on: ubuntu-latest
continue-on-error: true
steps:
- run: echo "${{toJSON(github.event.workflow_run)}}"
# custom statuses?
- uses: dawidd6/action-download-artifact@v2
with:
workflow: ${{github.event.workflow_run.name}}
run_id: ${{github.event.workflow_run.id}}
name: status
path: status
- name: update-status
run: |
# TODO remove this
ls status
for f in status/*.json
do
cat $f
done
shopt -s nullglob
for s in status/*.json
do
# parse requested status
export STATE="$(jq -er '.state' $s)"
export CONTEXT="$(jq -er '.context' $s)"
export DESCRIPTION="$(jq -er '.description' $s)"
# help lookup URL for job/steps because GitHub makes
# it VERY HARD to link to specific jobs
export TARGET_URL="$(
jq -er '.target_url // empty' $s || (
export TARGET_JOB="$(jq -er '.target_job' $s)"
export TARGET_STEP="$(jq -er '.target_step // ""' $s)"
curl -sS -H "authorization: token ${{secrets.GITHUB_TOKEN}}" \
"$GITHUB_API_URL/repos/$GITHUB_REPOSITORY/actions/runs/`
`${{github.event.workflow_run.id}}/jobs" \
| jq -er '.jobs[]
| select(.name == env.TARGET_JOB)
| .html_url
+ "?check_suite_focus=true"
+ ((.steps[]
| select(.name == env.TARGET_STEP)
| "#step:\(.number):0") // "")'))"
# TODO remove this
# print for debugging
echo "$(jq -nc '{
state: env.STATE,
context: env.CONTEXT,
description: env.DESCRIPTION,
target_url: env.TARGET_URL}')"
# update status
curl -sS -H "authorization: token ${{secrets.GITHUB_TOKEN}}" \
-X POST \
"$GITHUB_API_URL/repos/$GITHUB_REPOSITORY/statuses/`
`${{github.event.workflow_run.head_sha}}" \
-d "$(jq -nc '{
state: env.STATE,
context: env.CONTEXT,
description: env.DESCRIPTION,
target_url: env.TARGET_URL}')"
#if jq -er '.target_url' $s
#then
# export TARGET_URL="$(jq -er '.target_url' $s)"
#elif jq -er '.target_job' $s
#then
#
#fi
done
# - id: status
# run: |
# echo "::set-output name=description::$(cat statuses/x86_64.txt | tr '\n' ' ')"
# - uses: octokit/request-action@v2.x
# with:
# route: POST /repos/{repo}/status/{sha}
# repo: ${{github.repository}}
# sha: ${{github.event.status.sha}}
# context: ${{github.event.status.context}}
# state: ${{github.event.status.state}}
# description: ${{steps.status.outputs.description}}
# target_url: ${{github.event.status.target_url}}
#