Skip to content

Commit 6d47577

Browse files
committed
Release pipeline update
1 parent 4eaa3cd commit 6d47577

File tree

1 file changed

+106
-16
lines changed

1 file changed

+106
-16
lines changed

.github/workflows/release.yml

Lines changed: 106 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,24 +1,114 @@
11
name: Release Pytest agent
22

33
on:
4-
release:
5-
types: [published]
4+
push:
5+
branches: ['master']
6+
paths-ignore:
7+
- '.github/**'
8+
- CHANGELOG.md
9+
- README.rst
10+
- CONTRIBUTING.rst
11+
12+
env:
13+
VERSION_FILE: setup.py
14+
VERSION_EXTRACT_PATTERN: "__version__\s*=\s*'([^']+)"
15+
VERSION_REPLACE_PATTERN: "__version__ = '\1'"
16+
TMP_SUFFIX: _updated
17+
CHANGE_LOG_FILE: CHANGELOG.md
618

719
jobs:
820
deploy:
921
runs-on: ubuntu-latest
1022
steps:
11-
- uses: actions/checkout@v2
12-
- name: Set up Python
13-
uses: actions/setup-python@v2
14-
with:
15-
python-version: '3.6'
16-
- name: Install dependencies
17-
run: python -m pip install --upgrade pip setuptools wheel
18-
- name: Build package
19-
run: python setup.py sdist bdist_wheel
20-
- name: Publish package
21-
uses: pypa/gh-action-pypi-publish@release/v1
22-
with:
23-
user: ${{ secrets.PYPI_USERNAME }}
24-
password: ${{ secrets.PYPI_PASSWORD }}
23+
- uses: actions/checkout@v2
24+
25+
- name: Set up Python
26+
uses: actions/setup-python@v2
27+
with:
28+
python-version: '3.6'
29+
30+
- name: Install dependencies
31+
run: python -m pip install --upgrade pip setuptools wheel
32+
33+
- name: Build package
34+
run: python setup.py sdist bdist_wheel
35+
36+
- name: Publish package
37+
uses: pypa/gh-action-pypi-publish@release/v1
38+
with:
39+
user: ${{ secrets.PYPI_USERNAME }}
40+
password: ${{ secrets.PYPI_PASSWORD }}
41+
42+
- name: Setup git credentials
43+
uses: oleksiyrudenko/gha-git-credentials@v2
44+
with:
45+
name: 'reportportal.io'
46+
47+
token: ${{ secrets.GITHUB_TOKEN }}
48+
49+
- name: Generate versions
50+
uses: HardNorth/[email protected]
51+
with:
52+
version-source: file
53+
version-file: ${{ env.VERSION_FILE }}
54+
version-file-extraction-pattern: ${{ env.VERSION_EXTRACT_PATTERN }}
55+
56+
- name: Update CHANGELOG.md
57+
id: changelogUpdate
58+
run: |
59+
sed '/\[Unreleased\]/q' ${{ env.CHANGE_LOG_FILE }} >> ${{ env.CHANGE_LOG_FILE }}${{ env.TMP_SUFFIX }}
60+
sed -E '1,/#?#\s*\[Unreleased\]/d' ${{ env.CHANGE_LOG_FILE }} | sed -E '/#?#\s*\[/q' | \
61+
{ echo -e '\n## [${{ env.RELEASE_VERSION }}]'; sed '$d'; } >> ${{ env.CHANGE_LOG_FILE }}${{ env.TMP_SUFFIX }}
62+
grep -E '#?#\s*\[[0-9]' ${{ env.CHANGE_LOG_FILE }} | head -n1 >> ${{ env.CHANGE_LOG_FILE }}${{ env.TMP_SUFFIX }}
63+
sed -E '1,/#?#\s*\[[0-9]/d' ${{ env.CHANGE_LOG_FILE }} >> ${{ env.CHANGE_LOG_FILE }}${{ env.TMP_SUFFIX }}
64+
rm ${{ env.CHANGE_LOG_FILE }}
65+
mv ${{ env.CHANGE_LOG_FILE }}${{ env.TMP_SUFFIX }} ${{ env.CHANGE_LOG_FILE }}
66+
git add ${{ env.CHANGE_LOG_FILE }}
67+
git commit -m "Changelog update"
68+
git push
69+
70+
- name: Read changelog Entry
71+
id: readChangelogEntry
72+
uses: mindsers/[email protected]
73+
with:
74+
version: ${{ env.RELEASE_VERSION }}
75+
path: ./${{ env.CHANGE_LOG_FILE }}
76+
77+
- name: Create Release
78+
id: createRelease
79+
uses: actions/create-release@v1
80+
env:
81+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
82+
with:
83+
tag_name: ${{ env.RELEASE_VERSION }}
84+
release_name: Release ${{ env.RELEASE_VERSION }}
85+
body: ${{ steps.readChangelogEntry.outputs.log_entry }}
86+
draft: false
87+
prerelease: false
88+
89+
- name: Checkout develop branch
90+
if: ${{ github.ref }} == 'master'
91+
uses: actions/checkout@v2
92+
with:
93+
ref: 'develop'
94+
fetch-depth: 0
95+
96+
- name: Merge release branch into develop
97+
id: mergeIntoDevelop
98+
if: ${{ github.ref }} == 'master'
99+
run: |
100+
git merge -m 'Merge master branch into develop after a release' origin/master
101+
git status | (! grep -Fq 'both modified:') || git status | grep -F 'both modified:' \
102+
| { echo -e 'Unable to merge master into develop, merge conflicts:'; (! grep -Eo '[^ ]+$') }
103+
104+
- name: Update version file
105+
id: versionFileUpdate
106+
run: |
107+
export CURRENT_VERSION_VALUE=`echo '${{ env.CURRENT_VERSION }}' | sed -E 's/(.*)/${{ env.VERSION_REPLACE_PATTERN }}/'`
108+
export NEXT_VERSION_VALUE=`echo '${{ env.NEXT_VERSION }}' | sed -E 's/(.*)/${{ env.VERSION_REPLACE_PATTERN }}/'`
109+
sed "s/${CURRENT_VERSION_VALUE}/${NEXT_VERSION_VALUE}/g" ${{ env.VERSION_FILE }} > ${{ env.VERSION_FILE }}${{ env.TMP_SUFFIX }}
110+
rm ${{ env.VERSION_FILE }}
111+
mv ${{ env.VERSION_FILE }}${{ env.TMP_SUFFIX }} ${{ env.VERSION_FILE }}
112+
git add ${{ env.VERSION_FILE }}
113+
git commit -m "Version update"
114+
git push origin develop

0 commit comments

Comments
 (0)