Skip to content

Commit 9d52b63

Browse files
authored
Merge pull request #1708 from mrrobot47/add/auto-release
Add auto release workflow
2 parents 66a83c6 + b7788b9 commit 9d52b63

File tree

2 files changed

+78
-0
lines changed

2 files changed

+78
-0
lines changed

.github/workflows/test_and_build.yml

Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
on:
22
pull_request:
33
push:
4+
tags:
5+
- "v*.*.*"
46
branches:
57
- master
68
- develop
@@ -222,3 +224,46 @@ jobs:
222224
github_token: ${{ secrets.BOT_TOKEN }}
223225
branch: master
224226
repository: easyengine/easyengine-builds
227+
228+
release: #-----------------------------------------------------------------------
229+
name: Create release
230+
if: |
231+
github.repository_owner == 'EasyEngine' &&
232+
startsWith(github.ref, 'refs/tags/')
233+
runs-on: ubuntu-latest
234+
needs: [build, test, deploy]
235+
236+
steps:
237+
- name: Check out source code
238+
uses: actions/checkout@v2
239+
240+
- name: Download built Phar file
241+
uses: actions/download-artifact@v2
242+
with:
243+
name: easyengine-phar
244+
245+
- name : Create hashes
246+
run: |
247+
md5sum easyengine.phar | cut -d ' ' -f 1 > easyengine.phar.md5
248+
sha512sum easyengine.phar | cut -d ' ' -f 1 > easyengine.phar.sha512
249+
250+
- name: Authenticate gh-cli
251+
run: echo ${{ secrets.BOT_TOKEN }} | gh auth login --with-token
252+
253+
- name: Generate changelog
254+
run: bash utils/changelog.sh
255+
256+
- name: Get tag
257+
id: tag
258+
run: echo ::set-output name=tag::${GITHUB_REF/refs\/tags\//}
259+
260+
- name: Release
261+
uses: softprops/action-gh-release@v1
262+
with:
263+
body_path: changelog.txt
264+
files: |
265+
easyengine.phar
266+
easyengine.phar.md5
267+
easyengine.phar.sha512
268+
name: EasyEngine ${{ steps.tag.outputs.tag }}
269+
token: ${{ secrets.GITHUB_TOKEN }}

utils/changelog.sh

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
#!/usr/bin/env bash
2+
3+
echo "## What's Changed" > changelog.txt
4+
5+
createdAt=$(gh api graphql -F owner='EasyEngine' -F name='easyengine' -f query='
6+
query {
7+
repository(owner: "EasyEngine", name: "easyengine") {
8+
releases(last: 1) {
9+
nodes { tagName, createdAt }
10+
}
11+
}
12+
}
13+
' | jq -r '.data.repository.releases.nodes[0].createdAt')
14+
gh api graphql --paginate -f query="
15+
query {
16+
search(query: \"org:Easyengine updated:>$createdAt state:closed is:pr\", type:ISSUE,first: 100) {
17+
repositoryCount
18+
edges {
19+
node {
20+
... on PullRequest {
21+
title
22+
permalink
23+
state
24+
author {
25+
login
26+
}
27+
updatedAt
28+
}
29+
}
30+
}
31+
}
32+
}
33+
" --template '{{range .data.search.edges}}{{"* "}}{{.node.title}}{{" "}}{{.node.permalink}}{{" "}}{{.node.state}}{{" @"}}{{.node.author.login}}{{"\n"}}{{end}}' | sed '/CLOSED/d' | sed 's/ MERGED//g' >> changelog.txt

0 commit comments

Comments
 (0)