|
1 | 1 | name: Integration Tests |
2 | 2 |
|
3 | 3 | on: |
4 | | - workflow_dispatch: null |
| 4 | + workflow_dispatch: |
| 5 | + inputs: |
| 6 | + parallel_value: |
| 7 | + description: 'Number of parallel test executions for every user' |
| 8 | + required: false |
| 9 | + run_long_tests: |
| 10 | + description: 'Choose whether to run long-duration tests that may take additional time. Set to "true" to enable long tests e.g. database related cases. Default is "false"' |
| 11 | + required: false |
| 12 | + default: 'false' |
| 13 | + type: choice |
| 14 | + options: |
| 15 | + - 'true' |
| 16 | + - 'false' |
| 17 | + |
5 | 18 | push: |
6 | 19 | branches: |
7 | 20 | - main |
@@ -37,24 +50,24 @@ jobs: |
37 | 50 | - name: Install go-junit-report |
38 | 51 | run: go install github.com/jstemmer/go-junit-report/v2@latest |
39 | 52 |
|
40 | | - # Note: test tags are not in alphabetical order, it was divided to optimize test execution time |
| 53 | + # Note: test suites are not in alphabetical order, it was divided to optimize test execution time |
41 | 54 | - name: Set Test Scope for each Account |
42 | 55 | run: | |
43 | 56 | case "${{ matrix.user }}" in |
44 | 57 | "USER_1") |
45 | | - echo "TEST_TAGS=acceptance,backup,domain,domainrecord,domains,domainzonefile,helper,instance,provider" >> $GITHUB_ENV |
| 58 | + echo "TEST_SUITE=acceptance,backup,domain,domainrecord,domains,domainzonefile,helper,instance,provider" >> $GITHUB_ENV |
46 | 59 | echo "LINODE_TOKEN=${{ secrets.LINODE_TOKEN_USER_1 }}" >> $GITHUB_ENV |
47 | 60 | ;; |
48 | 61 | "USER_2") |
49 | | - echo "TEST_TAGS=databasemysqlv2,firewall,firewalldevice,firewalls,image,images,instancenetworking,instancesharedips,instancetype,instancetypes,ipv6range,ipv6ranges,kernel,kernels,nb,nbconfig,nbconfigs,nbnode,nbs,sshkey,sshkeys,vlan,volume,volumes,vpc,vpcs,vpcsubnets" >> $GITHUB_ENV |
| 62 | + echo "TEST_SUITE=databasemysqlv2,firewall,firewalldevice,firewalls,image,images,instancenetworking,instancesharedips,instancetype,instancetypes,ipv6range,ipv6ranges,kernel,kernels,nb,nbconfig,nbconfigs,nbnode,nbs,sshkey,sshkeys,vlan,volume,volumes,vpc,vpcs,vpcsubnets" >> $GITHUB_ENV |
50 | 63 | echo "LINODE_TOKEN=${{ secrets.LINODE_TOKEN_USER_2 }}" >> $GITHUB_ENV |
51 | 64 | ;; |
52 | 65 | "USER_3") |
53 | | - echo "TEST_TAGS=databasepostgresqlv2,instanceconfig,instancedisk,instanceip,networkingip,objcluster,objkey,profile,rdns,region,regions,stackscript,stackscripts" >> $GITHUB_ENV |
| 66 | + echo "TEST_SUITE=databasepostgresqlv2,instanceconfig,instancedisk,instanceip,networkingip,objcluster,objkey,profile,rdns,region,regions,stackscript,stackscripts" >> $GITHUB_ENV |
54 | 67 | echo "LINODE_TOKEN=${{ secrets.LINODE_TOKEN_USER_3 }}" >> $GITHUB_ENV |
55 | 68 | ;; |
56 | 69 | "USER_4") |
57 | | - echo "TEST_TAGS=lke,lkeclusters,lkenodepool,lkeversions,obj,objbucket,placementgroup,placementgroups,placementgorupassignment,token,user,users" >> $GITHUB_ENV |
| 70 | + echo "TEST_SUITE=lke,lkeclusters,lkenodepool,lkeversions,obj,objbucket,placementgroup,placementgroups,placementgorupassignment,token,user,users" >> $GITHUB_ENV |
58 | 71 | echo "LINODE_TOKEN=${{ secrets.LINODE_TOKEN_USER_4 }}" >> $GITHUB_ENV |
59 | 72 | ;; |
60 | 73 | esac |
|
64 | 77 |
|
65 | 78 | - name: Run Integration Tests |
66 | 79 | run: | |
67 | | - make TEST_TAGS="${{ env.TEST_TAGS }}" int-test | go-junit-report -set-exit-code -iocopy -out $REPORT_FILENAME |
| 80 | + make TEST_SUITE="${{ env.TEST_SUITE }}" PARALLEL="${{ github.event.inputs.parallel_value || '5' }}" test-int | go-junit-report -set-exit-code -iocopy -out $REPORT_FILENAME |
68 | 81 | env: |
69 | 82 | LINODE_TOKEN: ${{ env.LINODE_TOKEN }} |
70 | 83 |
|
@@ -152,7 +165,7 @@ jobs: |
152 | 165 | python-version: '3.x' |
153 | 166 |
|
154 | 167 | - name: Install Python dependencies |
155 | | - run: pip3 install requests wheel boto3 |
| 168 | + run: pip3 install requests wheel boto3==1.35.99 |
156 | 169 |
|
157 | 170 | - name: Download test report |
158 | 171 | uses: actions/download-artifact@v4 |
|
0 commit comments