Skip to content

Commit bd19036

Browse files
authored
Add beta deployment logic (#139)
* Add beta deployment logic Remove docker action Setup workflow to grab release version from release tag Enforce regex pattern on release tags * Use `tags` instead of wildcard rename `test.yaml` to 'test.yml'
1 parent b0dff69 commit bd19036

File tree

6 files changed

+123
-54
lines changed

6 files changed

+123
-54
lines changed

.github/actions/deploy/Dockerfile

Lines changed: 0 additions & 11 deletions
This file was deleted.

.github/actions/deploy/action.yml

Lines changed: 0 additions & 6 deletions
This file was deleted.

.github/actions/deploy/entrypoint.sh

Lines changed: 0 additions & 6 deletions
This file was deleted.

.github/workflows/deploy.yml

Lines changed: 119 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -4,38 +4,127 @@ on:
44
release:
55
types:
66
- published
7+
78
jobs:
9+
deploy_pre_release:
10+
name: Deploy OpenAPI Generator Client Pre-Release to PYPI
11+
if: ${{ github.event.release.prerelease && github.event.release.target_commitish == 'feature/openapi-generator-sdk' }}
12+
runs-on: ubuntu-latest
13+
env:
14+
BW_ACCOUNT_ID: ${{ secrets.BW_ACCOUNT_ID }}
15+
BW_USERNAME: ${{ secrets.BW_USERNAME }}
16+
BW_PASSWORD: ${{ secrets.BW_PASSWORD }}
17+
BW_USERNAME_FORBIDDEN: ${{ secrets.BW_USERNAME_FORBIDDEN }}
18+
BW_PASSWORD_FORBIDDEN: ${{ secrets.BW_PASSWORD_FORBIDDEN }}
19+
BW_VOICE_APPLICATION_ID: ${{ secrets.BW_VOICE_APPLICATION_ID }}
20+
BW_MESSAGING_APPLICATION_ID: ${{ secrets.BW_MESSAGING_APPLICATION_ID }}
21+
BW_NUMBER: ${{ secrets.BW_NUMBER }}
22+
USER_NUMBER: ${{ secrets.USER_NUMBER }}
23+
VZW_NUMBER: ${{ secrets.VZW_NUMBER }}
24+
ATT_NUMBER: ${{ secrets.ATT_NUMBER }}
25+
T_MOBILE_NUMBER: ${{ secrets.T_MOBILE_NUMBER }}
26+
BASE_CALLBACK_URL: ${{ secrets.BASE_CALLBACK_URL }}
27+
PYTHON_VERSION: ${{ matrix.python-version }}
28+
OPERATING_SYSTEM: ${{ matrix.os }}
29+
MANTECA_ACTIVE_NUMBER: ${{ secrets.MANTECA_ACTIVE_NUMBER }}
30+
MANTECA_IDLE_NUMBER: ${{ secrets.MANTECA_IDLE_NUMBER }}
31+
MANTECA_BASE_URL: ${{ secrets.MANTECA_BASE_URL }}
32+
MANTECA_APPLICATION_ID: ${{ secrets.MANTECA_APPLICATION_ID }}
33+
BW_NUMBER_PROVIDER: ${{ secrets.BW_NUMBER_PROVIDER }}
34+
steps:
35+
- name: Set Release Version
36+
run: echo "RELEASE_VERSION=${GITHUB_REF#refs/tags/v}" >> $GITHUB_ENV
37+
38+
- name: Check Release Tag Format
39+
run: |
40+
re=[0-9]+\.[0-9]+\.[0-9]+b[0-9]+
41+
if ! [[ $RELEASE_VERSION =~ $re ]]; then
42+
echo 'Tag does not match expected regex pattern for beta releases (v[0-9]+.[0-9]+.[0-9]+b[0-9]+)'
43+
echo $RELEASE_VERSION
44+
echo 'Please update your tag to match the expected regex pattern'
45+
exit 1
46+
fi
47+
48+
- name: Checkout
49+
uses: actions/checkout@v3
50+
with:
51+
ref: feature/openapi-generator-sdk
52+
53+
- name: Install Packages
54+
run: |
55+
pip install -r requirements.txt
56+
pip install -r test-requirements.txt
57+
58+
- name: Test
59+
run: |
60+
pytest -v
61+
62+
- name: Deploy to PYPI
63+
run: |
64+
pip install twine
65+
pip install wheel
66+
python setup.py sdist bdist_wheel
67+
twine upload dist/* -u $PYPI_USERNAME -p $PYPI_PASSWORD
68+
env:
69+
PYPI_USERNAME: ${{ secrets.PYPI_USERNAME }}
70+
PYPI_PASSWORD: ${{ secrets.PYPI_PASSWORD }}
71+
72+
- uses: Bandwidth/[email protected]
73+
if: always()
74+
with:
75+
job-status: ${{ job.status }}
76+
slack-bot-token: ${{ secrets.SLACK_BOT_TOKEN }}
77+
slack-channel: ${{ secrets.SLACK_CHANNEL }}
78+
879
deploy:
9-
name: Deploy to PYPI
80+
name: Deploy `main` to PYPI
1081
if: ${{ !github.event.release.prerelease && github.event.release.target_commitish == 'main' }}
1182
runs-on: ubuntu-latest
1283
steps:
13-
- name: Checkout
14-
uses: actions/checkout@v2
15-
16-
- name: Install Packages
17-
run: pip install -r requirements_dev.txt
18-
19-
- name: Test
20-
env:
21-
BW_ACCOUNT_ID: ${{ secrets.BW_ACCOUNT_ID }}
22-
BW_USERNAME: ${{ secrets.BW_USERNAME }}
23-
BW_PASSWORD: ${{ secrets.BW_PASSWORD }}
24-
BW_VOICE_APPLICATION_ID: ${{ secrets.BW_VOICE_APPLICATION_ID }}
25-
BW_MESSAGING_APPLICATION_ID: ${{ secrets.BW_MESSAGING_APPLICATION_ID }}
26-
BW_NUMBER: ${{ secrets.BW_NUMBER }}
27-
USER_NUMBER: ${{ secrets.USER_NUMBER }}
28-
BASE_CALLBACK_URL: ${{ secrets.BASE_CALLBACK_URL }}
29-
run: python -m pytest --pyargs bandwidth
30-
31-
- name: Deploy to PYPI
32-
uses: ./.github/actions/deploy
33-
env:
34-
PYPI_USERNAME: ${{ secrets.PYPI_USERNAME }}
35-
PYPI_PASSWORD: ${{ secrets.PYPI_PASSWORD }}
36-
- uses: Bandwidth/[email protected]
37-
if: always()
38-
with:
39-
job-status: ${{ job.status }}
40-
slack-bot-token: ${{ secrets.SLACK_BOT_TOKEN }}
41-
slack-channel: ${{ secrets.SLACK_CHANNEL }}
84+
- name: Set Release Version
85+
run: echo "RELEASE_VERSION=${GITHUB_REF#refs/tags/v}" >> $GITHUB_ENV
86+
87+
- name: Check Release Tag Format
88+
run: |
89+
re=[0-9]+\.[0-9]+\.[0-9]+
90+
if ! [[ $RELEASE_VERSION =~ $re ]]; then
91+
echo 'Tag does not match expected regex pattern for beta releases (v[0-9]+.[0-9]+.[0-9]+b[0-9]+)'
92+
echo $RELEASE_VERSION
93+
echo 'Please update your tag to match the expected regex pattern'
94+
exit 1
95+
fi
96+
97+
- name: Checkout
98+
uses: actions/checkout@v2
99+
100+
- name: Install Packages
101+
run: pip install -r requirements_dev.txt
102+
103+
- name: Test
104+
env:
105+
BW_ACCOUNT_ID: ${{ secrets.BW_ACCOUNT_ID }}
106+
BW_USERNAME: ${{ secrets.BW_USERNAME }}
107+
BW_PASSWORD: ${{ secrets.BW_PASSWORD }}
108+
BW_VOICE_APPLICATION_ID: ${{ secrets.BW_VOICE_APPLICATION_ID }}
109+
BW_MESSAGING_APPLICATION_ID: ${{ secrets.BW_MESSAGING_APPLICATION_ID }}
110+
BW_NUMBER: ${{ secrets.BW_NUMBER }}
111+
USER_NUMBER: ${{ secrets.USER_NUMBER }}
112+
BASE_CALLBACK_URL: ${{ secrets.BASE_CALLBACK_URL }}
113+
run: python -m pytest --pyargs bandwidth
114+
115+
- name: Deploy to PYPI
116+
run: |
117+
pip install twine
118+
pip install wheel
119+
python setup.py sdist bdist_wheel
120+
twine upload dist/* -u $PYPI_USERNAME -p $PYPI_PASSWORD
121+
env:
122+
PYPI_USERNAME: ${{ secrets.PYPI_USERNAME }}
123+
PYPI_PASSWORD: ${{ secrets.PYPI_PASSWORD }}
124+
125+
- uses: Bandwidth/[email protected]
126+
if: always()
127+
with:
128+
job-status: ${{ job.status }}
129+
slack-bot-token: ${{ secrets.SLACK_BOT_TOKEN }}
130+
slack-channel: ${{ secrets.SLACK_CHANNEL }}

setup.py

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,11 @@
11
# -*- coding: utf-8 -*-
22

3+
import os
34
import sys
45
from setuptools import setup, find_packages
56

7+
VERSION = os.environ['RELEASE_VERSION']
8+
69
if sys.version_info[0] < 3:
710
with open('README.md', 'r') as fh:
811
long_description = fh.read()
@@ -15,7 +18,7 @@
1518

1619
setup(
1720
name='bandwidth-sdk',
18-
version='14.3.0',
21+
version=VERSION,
1922
description='Bandwidth\'s set of APIs',
2023
long_description=long_description,
2124
long_description_content_type="text/markdown",

0 commit comments

Comments
 (0)