mirror of
				https://github.com/eledio-devices/thirdparty-littlefs.git
				synced 2025-10-31 16:14:16 +01:00 
			
		
		
		
	This helps an outstanding maintainer annoyance: updating dependencies to bring in new versions on each littlefs release. But instead of adding a bunch of scripts to the tail end of the release workflow, the post-release script just triggers a single "repository_dispatch" event in the newly created littlefs.post-release repo. From there any number of post-release workflows can be run. This indirection should let the post-release scripts move much quicker than littlefs itself, which helps offset how fragile these sort of scripts are. --- Also finished cleaning up the workflows now that they are mostly working.
		
			
				
	
	
		
			56 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			YAML
		
	
	
	
	
	
			
		
		
	
	
			56 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			YAML
		
	
	
	
	
	
| name: status
 | |
| on:
 | |
|   workflow_run:
 | |
|     workflows: [test]
 | |
|     types: [completed]
 | |
| 
 | |
| jobs:
 | |
|   status:
 | |
|     runs-on: ubuntu-18.04
 | |
|     steps:
 | |
|       # custom statuses?
 | |
|       - uses: dawidd6/action-download-artifact@v2
 | |
|         continue-on-error: true
 | |
|         with:
 | |
|           workflow: ${{github.event.workflow_run.name}}
 | |
|           run_id: ${{github.event.workflow_run.id}}
 | |
|           name: status
 | |
|           path: status
 | |
|       - name: update-status
 | |
|         continue-on-error: true
 | |
|         run: |
 | |
|           ls status
 | |
|           for s in $(shopt -s nullglob ; echo 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.BOT_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") // "")'))"
 | |
|             # update status
 | |
|             curl -sS -X POST -H "authorization: token ${{secrets.BOT_TOKEN}}" \
 | |
|               "$GITHUB_API_URL/repos/$GITHUB_REPOSITORY/statuses/`
 | |
|                 `${{github.event.workflow_run.head_sha}}" \
 | |
|               -d "$(jq -n '{
 | |
|                 state: env.STATE,
 | |
|                 context: env.CONTEXT,
 | |
|                 description: env.DESCRIPTION,
 | |
|                 target_url: env.TARGET_URL}' \
 | |
|                 | tee /dev/stderr)"
 | |
|           done
 |