Skip to content

Commit e63f8a7

Browse files
authored
DX-2981 Add Beta Deployment Logic (#141)
1 parent b48ae7f commit e63f8a7

File tree

1 file changed

+115
-30
lines changed

1 file changed

+115
-30
lines changed

.github/workflows/deploy.yml

Lines changed: 115 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -4,38 +4,123 @@ 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+
- name: Checkout
48+
uses: actions/checkout@v3
49+
with:
50+
ref: feature/openapi-generator-sdk
51+
52+
- name: Install Packages
53+
run: |
54+
pip install -r requirements.txt
55+
pip install -r test-requirements.txt
56+
- name: Test
57+
run: |
58+
pytest -v
59+
- name: Deploy to PYPI
60+
run: |
61+
pip install twine
62+
pip install wheel
63+
python setup.py sdist bdist_wheel
64+
twine upload dist/* -u $PYPI_USERNAME -p $PYPI_PASSWORD
65+
env:
66+
PYPI_USERNAME: ${{ secrets.PYPI_USERNAME }}
67+
PYPI_PASSWORD: ${{ secrets.PYPI_PASSWORD }}
68+
69+
- uses: Bandwidth/[email protected]
70+
if: always()
71+
with:
72+
job-status: ${{ job.status }}
73+
slack-bot-token: ${{ secrets.SLACK_BOT_TOKEN }}
74+
slack-channel: ${{ secrets.SLACK_CHANNEL }}
75+
876
deploy:
9-
name: Deploy to PYPI
77+
name: Deploy `main` to PYPI
1078
if: ${{ !github.event.release.prerelease && github.event.release.target_commitish == 'main' }}
1179
runs-on: ubuntu-latest
1280
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 }}
81+
- name: Set Release Version
82+
run: echo "RELEASE_VERSION=${GITHUB_REF#refs/tags/v}" >> $GITHUB_ENV
83+
84+
- name: Check Release Tag Format
85+
run: |
86+
re=[0-9]+\.[0-9]+\.[0-9]+
87+
if ! [[ $RELEASE_VERSION =~ $re ]]; then
88+
echo 'Tag does not match expected regex pattern for beta releases (v[0-9]+.[0-9]+.[0-9]+b[0-9]+)'
89+
echo $RELEASE_VERSION
90+
echo 'Please update your tag to match the expected regex pattern'
91+
exit 1
92+
fi
93+
- name: Checkout
94+
uses: actions/checkout@v2
95+
96+
- name: Install Packages
97+
run: pip install -r requirements_dev.txt
98+
99+
- name: Test
100+
env:
101+
BW_ACCOUNT_ID: ${{ secrets.BW_ACCOUNT_ID }}
102+
BW_USERNAME: ${{ secrets.BW_USERNAME }}
103+
BW_PASSWORD: ${{ secrets.BW_PASSWORD }}
104+
BW_VOICE_APPLICATION_ID: ${{ secrets.BW_VOICE_APPLICATION_ID }}
105+
BW_MESSAGING_APPLICATION_ID: ${{ secrets.BW_MESSAGING_APPLICATION_ID }}
106+
BW_NUMBER: ${{ secrets.BW_NUMBER }}
107+
USER_NUMBER: ${{ secrets.USER_NUMBER }}
108+
BASE_CALLBACK_URL: ${{ secrets.BASE_CALLBACK_URL }}
109+
run: python -m pytest --pyargs bandwidth
110+
111+
- name: Deploy to PYPI
112+
run: |
113+
pip install twine
114+
pip install wheel
115+
python setup.py sdist bdist_wheel
116+
twine upload dist/* -u $PYPI_USERNAME -p $PYPI_PASSWORD
117+
env:
118+
PYPI_USERNAME: ${{ secrets.PYPI_USERNAME }}
119+
PYPI_PASSWORD: ${{ secrets.PYPI_PASSWORD }}
120+
121+
- uses: Bandwidth/[email protected]
122+
if: always()
123+
with:
124+
job-status: ${{ job.status }}
125+
slack-bot-token: ${{ secrets.SLACK_BOT_TOKEN }}
126+
slack-channel: ${{ secrets.SLACK_CHANNEL }}

0 commit comments

Comments
 (0)