Skip to content

Commit 6c9de61

Browse files
committed
added python workflows
1 parent 05a9edc commit 6c9de61

6 files changed

+950
-0
lines changed
Lines changed: 151 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,151 @@
1+
name: Test Framework V2 Python Flask
2+
3+
on:
4+
# execute on demand
5+
workflow_dispatch:
6+
branches: ['master']
7+
8+
jobs:
9+
10+
# builds codegen cli and uploads its artifact
11+
build-codegen:
12+
13+
runs-on: ubuntu-latest
14+
15+
strategy:
16+
matrix:
17+
java: [ 8 ]
18+
19+
steps:
20+
- uses: actions/checkout@v2
21+
- uses: actions/setup-java@v1
22+
with:
23+
java-version: ${{ matrix.java }}
24+
- name: build codegen
25+
run: |
26+
mkdir codegen-cli
27+
echo "BUILDING Codegen"
28+
mvn -version
29+
mvn -q -B package -DskipTests -Dhttp.keepAlive=false -Dmaven.wagon.http.pool=false -Dmaven.wagon.httpconnectionManager.ttlSeconds=120 -Dmaven.wagon.http.retryHandler.count=3
30+
cp modules/swagger-codegen-cli/target/swagger-codegen-cli.jar codegen-cli
31+
- name: upload codegen cli
32+
uses: actions/upload-artifact@v2
33+
with:
34+
name: codegen-cli
35+
path: codegen-cli
36+
37+
generate:
38+
39+
needs: build-codegen
40+
41+
runs-on: ubuntu-latest
42+
43+
strategy:
44+
matrix:
45+
java: [ 8 ]
46+
47+
48+
outputs:
49+
generate_outcome: ${{ steps.outcome.outputs.generate_outcome }}
50+
51+
steps:
52+
- uses: actions/checkout@v2
53+
- uses: actions/setup-java@v1
54+
with:
55+
java-version: ${{ matrix.java }}
56+
- name: Download codegen cli
57+
uses: actions/download-artifact@v2
58+
with:
59+
name: codegen-cli
60+
- name: generate
61+
id: generate
62+
continue-on-error: true
63+
uses: ./.github/actions/generate
64+
with:
65+
language: "python-flask"
66+
job-name: ${{ env.JOB_NAME }}
67+
spec-url: "https://raw.githubusercontent.com/swagger-api/swagger-codegen/master/modules/swagger-codegen/src/test/resources/2_0/petstore.yaml"
68+
options: " -Dservice"
69+
- id: outcome
70+
run: |
71+
echo "::set-output name=generate_outcome::${{ steps.generate.outcome }}"
72+
echo ${{ steps.generate.outcome }} > generate_outcome_${{ env.JOB_NAME }}
73+
- name: upload generate outcome
74+
uses: actions/upload-artifact@v2
75+
with:
76+
name: ${{ env.JOB_NAME }}generate_outcome
77+
path: generate_outcome_${{ env.JOB_NAME }}
78+
- name: upload generate logs
79+
uses: actions/upload-artifact@v2
80+
with:
81+
name: ${{ env.JOB_NAME }}generate_logs
82+
path: ${{ steps.generate.outputs.logs }}
83+
- name: upload generated code
84+
if: contains(steps.generate.outcome, 'success')
85+
uses: actions/upload-artifact@v2
86+
with:
87+
name: ${{ env.JOB_NAME }}generated
88+
path: ${{ steps.generate.outputs.path }}
89+
env:
90+
JOB_NAME: "python-flask-v2-sample"
91+
92+
build:
93+
94+
needs: generate
95+
if: contains(needs.generate.outputs.generate_outcome, 'success')
96+
runs-on: ubuntu-latest
97+
98+
strategy:
99+
###############################################
100+
##### DYNAMIC: Dependent on build environment
101+
###############################################
102+
matrix:
103+
python-version: [3.x]
104+
###############################################
105+
##### END DYNAMIC: Dependent on build environment
106+
###############################################
107+
steps:
108+
- uses: actions/checkout@v2
109+
- name: Download artifacts
110+
uses: actions/download-artifact@v2
111+
with:
112+
name: ${{ env.JOB_NAME }}generated
113+
path: generated/${{ env.JOB_NAME }}
114+
- name: Download logs
115+
uses: actions/download-artifact@v2
116+
with:
117+
name: ${{ env.JOB_NAME }}generate_logs
118+
###############################################
119+
##### DYNAMIC: Dependent on build environment
120+
###############################################
121+
- name: Setup python
122+
uses: actions/setup-python@v2
123+
with:
124+
python-version: ${{ matrix.python-version }}
125+
###############################################
126+
##### END DYNAMIC: Dependent on build environment
127+
###############################################
128+
- name: build
129+
id: build
130+
uses: ./.github/actions/build
131+
continue-on-error: true
132+
with:
133+
path: generated/${{ env.JOB_NAME }}
134+
job-name: ${{ env.JOB_NAME }}
135+
build-commands: "python -m swagger_server &"
136+
- id: outcome
137+
run: |
138+
echo "::set-output name=build_outcome::${{ steps.build.outcome }}"
139+
echo ${{ steps.build.outcome }} > ${{ env.JOB_NAME }}build_outcome
140+
- name: upload build outcome
141+
uses: actions/upload-artifact@v2
142+
with:
143+
name: ${{ env.JOB_NAME }}build_outcome
144+
path: ${{ env.JOB_NAME }}build_outcome
145+
- name: upload logs
146+
uses: actions/upload-artifact@v2
147+
with:
148+
name: ${{ env.JOB_NAME }}logs
149+
path: ${{ steps.build.outputs.logs }}
150+
env:
151+
JOB_NAME: "python-flask-v2-sample"
Lines changed: 169 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,169 @@
1+
name: Test Framework V2 Python Tornado
2+
3+
on:
4+
# execute on demand
5+
workflow_dispatch:
6+
branches: ["master"]
7+
8+
jobs:
9+
10+
# builds codegen cli and uploads its artifact
11+
build-codegen:
12+
13+
runs-on: ubuntu-latest
14+
15+
strategy:
16+
matrix:
17+
java: [ 8 ]
18+
19+
steps:
20+
- uses: actions/checkout@v2
21+
- uses: actions/setup-java@v1
22+
with:
23+
java-version: ${{ matrix.java }}
24+
- name: build codegen
25+
run: |
26+
mkdir codegen-cli
27+
echo "BUILDING latest"
28+
mvn -version
29+
mvn -q -B package -DskipTests -Dhttp.keepAlive=false -Dmaven.wagon.http.pool=false -Dmaven.wagon.httpconnectionManager.ttlSeconds=120 -Dmaven.wagon.http.retryHandler.count=3
30+
ls modules/swagger-codegen-cli/target/
31+
cp modules/swagger-codegen-cli/target/swagger-codegen-cli.jar codegen-cli
32+
33+
mkdir python-v2-sample-test-config-files
34+
cp samples/client/petstore/python-tornado/tests -r python-v2-sample-test-config-files
35+
cp samples/client/petstore/python-tornado/Makefile python-v2-sample-test-config-files
36+
cp samples/client/petstore/python-tornado/pom.xml python-v2-sample-test-config-files
37+
cp samples/client/petstore/python-tornado/setup.py python-v2-sample-test-config-files
38+
cp samples/client/petstore/python-tornado/test_python2_and_3.sh python-v2-sample-test-config-files
39+
- name: upload codegen cli
40+
uses: actions/upload-artifact@v2
41+
with:
42+
name: codegen-cli
43+
path: codegen-cli
44+
- name: upload python test cfg files
45+
uses: actions/upload-artifact@v2
46+
with:
47+
name: python-v2-sample-test-config-files
48+
path: python-v2-sample-test-config-files
49+
50+
generate:
51+
52+
needs: build-codegen
53+
54+
runs-on: ubuntu-latest
55+
56+
strategy:
57+
matrix:
58+
java: [ 8 ]
59+
60+
61+
outputs:
62+
generate_outcome: ${{ steps.outcome.outputs.generate_outcome }}
63+
64+
steps:
65+
- uses: actions/checkout@v2
66+
- uses: actions/setup-java@v1
67+
with:
68+
java-version: ${{ matrix.java }}
69+
- name: Download codegen cli
70+
uses: actions/download-artifact@v2
71+
with:
72+
name: codegen-cli
73+
- name: generate
74+
id: generate
75+
continue-on-error: true
76+
uses: ./.github/actions/generate
77+
with:
78+
language: python
79+
job-name: ${{ env.JOB_NAME }}
80+
spec-url: https://raw.githubusercontent.com/swagger-api/swagger-codegen/master/modules/swagger-codegen/src/test/resources/2_0/petstore-with-fake-endpoints-models-for-testing.yaml
81+
options: " -DpackageName=petstore_api --library tornado"
82+
- id: outcome
83+
run: |
84+
echo "::set-output name=generate_outcome::${{ steps.generate.outcome }}"
85+
echo ${{ steps.generate.outcome }} > generate_outcome_${{ env.JOB_NAME }}
86+
- name: upload generate outcome
87+
uses: actions/upload-artifact@v2
88+
with:
89+
name: ${{ env.JOB_NAME }}generate_outcome
90+
path: generate_outcome_${{ env.JOB_NAME }}
91+
- name: upload generate logs
92+
uses: actions/upload-artifact@v2
93+
with:
94+
name: ${{ env.JOB_NAME }}generate_logs
95+
path: ${{ steps.generate.outputs.logs }}
96+
- name: upload generated code
97+
if: contains(steps.generate.outcome, 'success')
98+
uses: actions/upload-artifact@v2
99+
with:
100+
name: ${{ env.JOB_NAME }}generated
101+
path: ${{ steps.generate.outputs.path }}
102+
env:
103+
JOB_NAME: "python-tornado-v2-sample"
104+
105+
build:
106+
107+
needs: generate
108+
if: contains(needs.generate.outputs.generate_outcome, 'success')
109+
runs-on: ubuntu-latest
110+
111+
strategy:
112+
###############################################
113+
##### DYNAMIC: Dependent on build environment
114+
###############################################
115+
matrix:
116+
python-version: [3.x]
117+
###############################################
118+
##### END DYNAMIC: Dependent on build environment
119+
###############################################
120+
steps:
121+
- uses: actions/checkout@v2
122+
- name: Download artifacts
123+
uses: actions/download-artifact@v2
124+
with:
125+
name: ${{ env.JOB_NAME }}generated
126+
path: generated/${{ env.JOB_NAME }}
127+
- name: Download logs
128+
uses: actions/download-artifact@v2
129+
with:
130+
name: ${{ env.JOB_NAME }}generate_logs
131+
###############################################
132+
##### DYNAMIC: Dependent on build environment
133+
###############################################
134+
- name: Setup python
135+
uses: actions/setup-python@v2
136+
with:
137+
python-version: ${{ matrix.python-version }}
138+
- name: Download Python V2 test cfg files
139+
uses: actions/download-artifact@v2
140+
with:
141+
name: python-v2-sample-test-config-files
142+
path: generated/${{ env.JOB_NAME }}
143+
###############################################
144+
##### END DYNAMIC: Dependent on build environment
145+
###############################################
146+
- name: build
147+
id: build
148+
uses: ./.github/actions/build
149+
continue-on-error: true
150+
with:
151+
path: generated/${{ env.JOB_NAME }}
152+
job-name: ${{ env.JOB_NAME }}
153+
build-commands: "python setup.py install__&&__pip install tox__&&__make test-all"
154+
- id: outcome
155+
run: |
156+
echo "::set-output name=build_outcome::${{ steps.build.outcome }}"
157+
echo ${{ steps.build.outcome }} > ${{ env.JOB_NAME }}build_outcome
158+
- name: upload build outcome
159+
uses: actions/upload-artifact@v2
160+
with:
161+
name: ${{ env.JOB_NAME }}build_outcome
162+
path: ${{ env.JOB_NAME }}build_outcome
163+
- name: upload logs
164+
uses: actions/upload-artifact@v2
165+
with:
166+
name: ${{ env.JOB_NAME }}logs
167+
path: ${{ steps.build.outputs.logs }}
168+
env:
169+
JOB_NAME: "python-tornado-v2-sample"

0 commit comments

Comments
 (0)