Automate image release process (#79)
This commit is contained in:
56
.github/workflows/check-release.yml
vendored
Normal file
56
.github/workflows/check-release.yml
vendored
Normal file
@@ -0,0 +1,56 @@
|
||||
name: "Check Releases"
|
||||
on:
|
||||
schedule:
|
||||
- cron: '27 23 * * *'
|
||||
push:
|
||||
branches:
|
||||
- master
|
||||
jobs:
|
||||
fetch:
|
||||
name: Fetch Latest Godot Engine Release
|
||||
runs-on: ubuntu-20.04
|
||||
outputs:
|
||||
release_tag: ${{ steps.parse.outputs.tag }}
|
||||
json: ${{ steps.get_latest_release.outputs.data }}
|
||||
steps:
|
||||
- uses: octokit/request-action@v2.x
|
||||
id: get_latest_release
|
||||
with:
|
||||
route: GET /repos/godotengine/godot/releases/latest
|
||||
owner: octokit
|
||||
repo: request-action
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
- id: parse
|
||||
run: |
|
||||
TAG=$(echo '${{ steps.get_latest_release.outputs.data }}' | jq --raw-output .tag_name)
|
||||
echo "::set-output name=tag::$TAG"
|
||||
current:
|
||||
name: Fetch Current Godot CI release
|
||||
runs-on: ubuntu-20.04
|
||||
outputs:
|
||||
release_tag: ${{ steps.parse.outputs.tag }}
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
with:
|
||||
fetch-depth: 0
|
||||
- id: parse
|
||||
run: echo "::set-output name=tag::$(git tag --list --sort=-creatordate | head --lines 1)"
|
||||
create:
|
||||
needs: [fetch, current]
|
||||
name: Create New Godot CI Release
|
||||
runs-on: ubuntu-20.04
|
||||
if: needs.fetch.outputs.release_tag != needs.current.outputs.release_tag
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
- run: echo '${{ needs.fetch.outputs.json }}' | jq --raw-output .body | sed 's/\\r\\n/\n/g' > body.txt
|
||||
- run: |
|
||||
git config user.name github-actions
|
||||
git config user.email github-actions@github.com
|
||||
git tag ${{ needs.fetch.outputs.release_tag }}
|
||||
git push
|
||||
- uses: softprops/action-gh-release@v0.1.14
|
||||
with:
|
||||
body_path: body.txt
|
||||
tag_name: ${{ needs.fetch.outputs.release_tag }}
|
||||
token: ${{ secrets.PAT }}
|
||||
Reference in New Issue
Block a user