-
Notifications
You must be signed in to change notification settings - Fork 50
73 lines (68 loc) · 2.59 KB
/
release.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
name: Release
on:
pull_request:
types: [ labeled ]
branches:
- master
jobs:
prepare-release:
name: Prepare release
runs-on: ubuntu-latest
steps:
- name: Set major release
if: ${{ github.event.label.name == 'release-major' }}
run: echo "RELEASE=major" >> $GITHUB_ENV
- name: Set minor release
if: ${{ github.event.label.name == 'release-minor' }}
run: echo "RELEASE=minor" >> $GITHUB_ENV
- name: Set patch release
if: ${{ github.event.label.name == 'release-patch' }}
run: echo "RELEASE=patch" >> $GITHUB_ENV
- name: Check release env
run: |
if [[ -z "${{ env.RELEASE }}" ]];
then
echo "You need to set a release label on PRs to the main branch"
exit 1
else
exit 0
fi
- name: Install semver-tool
run: |
export DIR=$(mtemp)
cd $DIR
curl https://github.com/fsaintjacques/semver-tool/archive/3.2.0.tar.gz -L -o semver.tar.gz
tar -xvf semver.tar.gz
sudo cp semver-tool-3.2.0/src/semver /usr/local/bin
- name: Bump version
run: |
export CURRENT=$(nuget list PusherServer | grep PusherServer | cut -d' ' -f 2)
export NEW_VERSION=$(semver bump ${{ env.RELEASE }} $CURRENT)
echo "VERSION=$NEW_VERSION" >> $GITHUB_ENV
- name: Checkout code
uses: actions/checkout@v2
- name: Setup git
run: |
git config user.email "pusher-ci@pusher.com"
git config user.name "Pusher CI"
git fetch
git checkout ${{ github.event.pull_request.head.ref }}
- name: Prepare package
run: |
sed -i 's/<Version>[^<]*<\/Version>/<Version>${{ env.VERSION }}<\/Version>/' Root.Build.props
sed -i 's/<AssemblyVersion>[^<]*<\/AssemblyVersion>/<AssemblyVersion>${{ env.VERSION }}.0<\/AssemblyVersion>/' Root.Build.props
sed -i 's/<FileVersion>[^<]*<\/FileVersion>/<FileVersion>${{ env.VERSION }}.0<\/FileVersion>/' Root.Build.props
- name: Prepare CHANGELOG
env:
PULL_REQUEST_BODY: ${{ github.event.pull_request.body }}
run: |
echo "$PULL_REQUEST_BODY" | csplit -s - "/##/"
echo "# Changelog
## ${{ env.VERSION }}" >> CHANGELOG.tmp
grep "^*" xx01 >> CHANGELOG.tmp
grep -v "^# " CHANGELOG.md >> CHANGELOG.tmp
cp CHANGELOG.tmp CHANGELOG.md
git add Root.Build.props CHANGELOG.md
git commit -m "Bump to version ${{ env.VERSION }}"
- name: Push
run: git push