12
12
required : false
13
13
default : ' '
14
14
jobs :
15
- upload_data :
16
- uses : timeplus-io/proton/.github/workflows/run_command.yml@develop
17
- with :
18
- ec2-instance-type : ${{ vars.X64_INSTANCE_TYPE }}
19
- ec2-image-id : ${{ vars.X64_TEST_AMI }}
20
- ec2-volume-size : ' 30'
21
- submodules : false
22
- timeout : 30
15
+ prepare_upload_data :
16
+ if : ${{ github.event.inputs.source == '' || github.event.inputs.source == github.event.inputs.target }}
17
+ runs-on : ubuntu-latest
18
+ outputs :
23
19
command : |
24
20
export PROTON_VERSION=${{ github.event.inputs.target }}
25
21
@@ -49,38 +45,25 @@ jobs:
49
45
50
46
cd $GITHUB_WORKSPACE
51
47
tar -zcvf $PROTON_VERSION.tar.gz data
52
- aws s3 cp --no-progress $PROTON_VERSION.tar.gz s3://tp-internal/proton/compatibility/oss/
53
- secrets :
54
- AWS_ACCESS_KEY_ID : ${{ secrets.AWS_ACCESS_KEY_ID }}
55
- AWS_SECRET_ACCESS_KEY : ${{ secrets.AWS_SECRET_ACCESS_KEY }}
56
- AWS_REGION : ${{ secrets.AWS_REGION }}
57
- AWS_S3_BUCKET : ${{ secrets.AWS_S3_BUCKET }}
58
- GH_PERSONAL_ACCESS_TOKEN : ${{ secrets.GH_PERSONAL_ACCESS_TOKEN }}
59
- DOCKERHUB_USERNAME : ${{ secrets.DOCKERHUB_USERNAME }}
60
- DOCKERHUB_TOKEN : ${{ secrets.DOCKERHUB_TOKEN }}
61
- TIMEPLUS_ADDRESS : ${{ secrets.TIMEPLUS_ADDRESS }}
62
- TIMEPLUS_API_KEY : ${{ secrets.TIMEPLUS_API_KEY }}
63
- TIMEPLUS_WORKSPACE : ${{ secrets.TIMEPLUS_WORKSPACE }}
64
-
65
- compatibility_test :
66
- if : ${{ github.event.inputs.source!='' }}
67
- uses : timeplus-io/proton/.github/workflows/run_command.yml@develop
68
- with :
69
- ec2-instance-type : ${{ vars.X64_INSTANCE_TYPE }}
70
- ec2-image-id : ${{ vars.X64_TEST_AMI }}
71
- ec2-volume-size : ' 30'
72
- submodules : false
73
- timeout : 30
48
+ aws s3 cp --no-progress $PROTON_VERSION.tar.gz s3://tp-internal/proton/compatibility/oss/$ARCH/
49
+ steps :
50
+ - name : display command
51
+ run : |
52
+ echo 'command: ${{ steps.set_command.outputs.command }}'
53
+ prepare_compatibility_test :
54
+ if : ${{ github.event.inputs.source != '' && github.event.inputs.source != github.event.inputs.target }}
55
+ runs-on : ubuntu-latest
56
+ outputs :
74
57
command : |
75
58
export TARGET_VERSION=${{ github.event.inputs.target }}
76
59
export SOURCE_VERSION=${{ github.event.inputs.source }}
77
60
export PROTON_VERSION=$TARGET_VERSION
78
-
61
+
79
62
# prepare data
80
63
cd $GITHUB_WORKSPACE
81
- aws s3 cp --no-progress s3://tp-internal/proton/compatibility/oss/$SOURCE_VERSION.tar.gz .
64
+ aws s3 cp --no-progress s3://tp-internal/proton/compatibility/oss/$ARCH/$ SOURCE_VERSION.tar.gz .
82
65
tar -zxvf $SOURCE_VERSION.tar.gz
83
-
66
+
84
67
cd $GITHUB_WORKSPACE/tests/stream
85
68
86
69
# make virtualenv
@@ -90,20 +73,82 @@ jobs:
90
73
apt install python3-venv -y
91
74
python -m venv env
92
75
source env/bin/activate
93
-
76
+
94
77
pip install --upgrade pip
95
-
78
+
96
79
# FIXME: remove this line after pyyaml community fixed install bug
97
80
pip install pyyaml==5.3.1
98
-
81
+
99
82
# FIXME(yokofly): docker 7.0.0 introduce a breaking change
100
83
# https://github.com/docker/docker-py/issues/3194
101
84
pip install docker==6.1.3
102
-
85
+
103
86
pip install -r helpers/requirements.txt
104
-
87
+
105
88
bash test_compatibility/basic_tests.sh
106
89
bash test_compatibility/extra_tests.sh
90
+ steps :
91
+ - name : display command
92
+ run : |
93
+ echo 'command: ${{ steps.set_command.outputs.command }}'
94
+ upload_data_x64 :
95
+ needs : [prepare_upload_data]
96
+ uses : timeplus-io/proton/.github/workflows/run_command.yml@develop
97
+ with :
98
+ ec2-instance-type : ${{ vars.X64_INSTANCE_TYPE }}
99
+ ec2-image-id : ${{ vars.X64_TEST_AMI }}
100
+ ec2-volume-size : ' 30'
101
+ submodules : false
102
+ timeout : 30
103
+ arch : ${{ vars.X64_ARCH }}
104
+ command : |
105
+ ${{ needs.prepare_upload_data.outputs.command }}
106
+ secrets :
107
+ AWS_ACCESS_KEY_ID : ${{ secrets.AWS_ACCESS_KEY_ID }}
108
+ AWS_SECRET_ACCESS_KEY : ${{ secrets.AWS_SECRET_ACCESS_KEY }}
109
+ AWS_REGION : ${{ secrets.AWS_REGION }}
110
+ AWS_S3_BUCKET : ${{ secrets.AWS_S3_BUCKET }}
111
+ GH_PERSONAL_ACCESS_TOKEN : ${{ secrets.GH_PERSONAL_ACCESS_TOKEN }}
112
+ DOCKERHUB_USERNAME : ${{ secrets.DOCKERHUB_USERNAME }}
113
+ DOCKERHUB_TOKEN : ${{ secrets.DOCKERHUB_TOKEN }}
114
+ TIMEPLUS_ADDRESS : ${{ secrets.TIMEPLUS_ADDRESS }}
115
+ TIMEPLUS_API_KEY : ${{ secrets.TIMEPLUS_API_KEY }}
116
+ TIMEPLUS_WORKSPACE : ${{ secrets.TIMEPLUS_WORKSPACE }}
117
+ upload_data_arm :
118
+ needs : [prepare_upload_data]
119
+ uses : timeplus-io/proton/.github/workflows/run_command.yml@develop
120
+ with :
121
+ ec2-instance-type : ${{ vars.ARM_INSTANCE_TYPE }}
122
+ ec2-image-id : ${{ vars.ARM_TEST_AMI }}
123
+ ec2-volume-size : ' 30'
124
+ submodules : false
125
+ timeout : 30
126
+ arch : ${{ vars.ARM_ARCH }}
127
+ command : |
128
+ ${{ needs.prepare_upload_data.outputs.command }}
129
+ secrets :
130
+ AWS_ACCESS_KEY_ID : ${{ secrets.AWS_ACCESS_KEY_ID }}
131
+ AWS_SECRET_ACCESS_KEY : ${{ secrets.AWS_SECRET_ACCESS_KEY }}
132
+ AWS_REGION : ${{ secrets.AWS_REGION }}
133
+ AWS_S3_BUCKET : ${{ secrets.AWS_S3_BUCKET }}
134
+ GH_PERSONAL_ACCESS_TOKEN : ${{ secrets.GH_PERSONAL_ACCESS_TOKEN }}
135
+ DOCKERHUB_USERNAME : ${{ secrets.DOCKERHUB_USERNAME }}
136
+ DOCKERHUB_TOKEN : ${{ secrets.DOCKERHUB_TOKEN }}
137
+ TIMEPLUS_ADDRESS : ${{ secrets.TIMEPLUS_ADDRESS }}
138
+ TIMEPLUS_API_KEY : ${{ secrets.TIMEPLUS_API_KEY }}
139
+ TIMEPLUS_WORKSPACE : ${{ secrets.TIMEPLUS_WORKSPACE }}
140
+ compatibility_test_x64 :
141
+ needs : [prepare_compatibility_test]
142
+ uses : timeplus-io/proton/.github/workflows/run_command.yml@develop
143
+ with :
144
+ ec2-instance-type : ${{ vars.X64_INSTANCE_TYPE }}
145
+ ec2-image-id : ${{ vars.X64_TEST_AMI }}
146
+ ec2-volume-size : ' 30'
147
+ submodules : false
148
+ timeout : 30
149
+ arch : ${{ vars.X64_ARCH }}
150
+ command : |
151
+ ${{ needs.prepare_compatibility_test.outputs.command }}
107
152
secrets :
108
153
AWS_ACCESS_KEY_ID : ${{ secrets.AWS_ACCESS_KEY_ID }}
109
154
AWS_SECRET_ACCESS_KEY : ${{ secrets.AWS_SECRET_ACCESS_KEY }}
@@ -115,3 +160,26 @@ jobs:
115
160
TIMEPLUS_ADDRESS : ${{ secrets.TIMEPLUS_ADDRESS }}
116
161
TIMEPLUS_API_KEY : ${{ secrets.TIMEPLUS_API_KEY }}
117
162
TIMEPLUS_WORKSPACE : ${{ secrets.TIMEPLUS_WORKSPACE }}
163
+ compatibility_test_arm :
164
+ needs : [prepare_compatibility_test]
165
+ uses : timeplus-io/proton/.github/workflows/run_command.yml@develop
166
+ with :
167
+ ec2-instance-type : ${{ vars.ARM_INSTANCE_TYPE }}
168
+ ec2-image-id : ${{ vars.ARM_TEST_AMI }}
169
+ ec2-volume-size : ' 30'
170
+ submodules : false
171
+ timeout : 30
172
+ arch : ${{ vars.ARM_ARCH }}
173
+ command : |
174
+ ${{ needs.prepare_compatibility_test.outputs.command }}
175
+ secrets :
176
+ AWS_ACCESS_KEY_ID : ${{ secrets.AWS_ACCESS_KEY_ID }}
177
+ AWS_SECRET_ACCESS_KEY : ${{ secrets.AWS_SECRET_ACCESS_KEY }}
178
+ AWS_REGION : ${{ secrets.AWS_REGION }}
179
+ AWS_S3_BUCKET : ${{ secrets.AWS_S3_BUCKET }}
180
+ GH_PERSONAL_ACCESS_TOKEN : ${{ secrets.GH_PERSONAL_ACCESS_TOKEN }}
181
+ DOCKERHUB_USERNAME : ${{ secrets.DOCKERHUB_USERNAME }}
182
+ DOCKERHUB_TOKEN : ${{ secrets.DOCKERHUB_TOKEN }}
183
+ TIMEPLUS_ADDRESS : ${{ secrets.TIMEPLUS_ADDRESS }}
184
+ TIMEPLUS_API_KEY : ${{ secrets.TIMEPLUS_API_KEY }}
185
+ TIMEPLUS_WORKSPACE : ${{ secrets.TIMEPLUS_WORKSPACE }}
0 commit comments