Skip to content

Commit a5425e3

Browse files
authored
ci: update acceptance tests to run Renku v2 tests (#2021)
* Run the Cypress acceptance tests for v2 and make the legacy tests optional * Phase out Selenium acceptance tests * Bump the Renku action to 1.14.2 * Add job names, remove redundant values, and adjust a few details
1 parent 7b869a3 commit a5425e3

File tree

1 file changed

+84
-49
lines changed

1 file changed

+84
-49
lines changed

.github/workflows/acceptance-tests.yml

Lines changed: 84 additions & 49 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,7 @@
11
name: Acceptance tests
2+
permissions:
3+
contents: read
4+
pull-requests: read
25

36
on:
47
pull_request:
@@ -15,7 +18,8 @@ concurrency:
1518

1619
jobs:
1720
check-deploy:
18-
runs-on: ubuntu-22.04
21+
name: Analyze deploy string
22+
runs-on: ubuntu-24.04
1923
outputs:
2024
pr-contains-string: ${{ steps.deploy-comment.outputs.pr-contains-string }}
2125
renku: ${{ steps.deploy-comment.outputs.renku}}
@@ -24,40 +28,56 @@ jobs:
2428
renku-graph: ${{ steps.deploy-comment.outputs.renku-graph}}
2529
renku-ui: ${{ steps.deploy-comment.outputs.renku-ui}}
2630
amalthea: ${{ steps.deploy-comment.outputs.amalthea}}
31+
amalthea-sessions: ${{ steps.deploy-comment.outputs.amalthea-sessions}}
2732
renku-data-services: ${{ steps.deploy-comment.outputs.renku-data-services}}
2833
test-enabled: ${{ steps.deploy-comment.outputs.test-enabled}}
34+
test-legacy-enabled: ${{ steps.deploy-comment.outputs.test-legacy-enabled}}
2935
extra-values: ${{ steps.deploy-comment.outputs.extra-values}}
3036
steps:
3137
- id: deploy-comment
32-
uses: SwissDataScienceCenter/renku-actions/check-pr-description@v1.12.3
38+
uses: SwissDataScienceCenter/renku-actions/check-pr-description@v1.14.2
3339
with:
34-
string: /deploy
3540
pr_ref: ${{ github.event.number }}
3641

3742
deploy-pr:
38-
needs: check-deploy
43+
name: Deploy
44+
runs-on: ubuntu-24.04
45+
needs: [check-deploy]
46+
permissions:
47+
pull-requests: write
3948
if: github.event.action != 'closed' && needs.check-deploy.outputs.pr-contains-string == 'true'
40-
runs-on: ubuntu-22.04
4149
environment:
4250
name: renku-ci-nb-${{ github.event.number }}
4351
url: https://renku-ci-nb-${{ github.event.number }}.dev.renku.ch
4452
steps:
45-
- name: deploy-pr
46-
uses: SwissDataScienceCenter/renku-actions/[email protected]
53+
- uses: actions/checkout@v4
54+
- name: Find deplyoment url
55+
uses: peter-evans/find-comment@v3
56+
id: deploymentUrlMessage
57+
with:
58+
issue-number: ${{ github.event.pull_request.number }}
59+
comment-author: "RenkuBot"
60+
body-includes: "You can access the deployment of this PR at"
61+
- name: Create comment deployment url
62+
if: steps.deploymentUrlMessage.outputs.comment-id == 0
63+
uses: peter-evans/create-or-update-comment@v4
64+
with:
65+
token: ${{ secrets.RENKUBOT_GITHUB_TOKEN }}
66+
issue-number: ${{ github.event.pull_request.number }}
67+
body: |
68+
You can access the deployment of this PR at https://renku-ci-nb-${{ github.event.number }}.dev.renku.ch
69+
- name: Build and deploy
70+
uses: SwissDataScienceCenter/renku-actions/[email protected]
4771
env:
4872
DOCKER_PASSWORD: ${{ secrets.RENKU_DOCKER_PASSWORD }}
4973
DOCKER_USERNAME: ${{ secrets.RENKU_DOCKER_USERNAME }}
5074
GITLAB_TOKEN: ${{ secrets.DEV_GITLAB_TOKEN }}
5175
KUBECONFIG: "${{ github.workspace }}/renkubot-kube.config"
52-
RANCHER_PROJECT_ID: ${{ secrets.CI_RANCHER_PROJECT }}
5376
RENKU_RELEASE: renku-ci-nb-${{ github.event.number }}
5477
RENKU_VALUES_FILE: "${{ github.workspace }}/values.yaml"
5578
RENKU_VALUES: ${{ secrets.COMBINED_CHARTS_CI_RENKU_VALUES }}
5679
RENKUBOT_KUBECONFIG: ${{ secrets.RENKUBOT_DEV_KUBECONFIG }}
5780
RENKUBOT_RANCHER_BEARER_TOKEN: ${{ secrets.RENKUBOT_RANCHER_BEARER_TOKEN }}
58-
RANCHER_DEV_API_ENDPOINT: ${{ secrets.RANCHER_DEV_API_ENDPOINT }}
59-
RENKU_BOT_DEV_PASSWORD: ${{ secrets.RENKU_BOT_DEV_PASSWORD }}
60-
RENKU_TESTS_ENABLED: true
6181
TEST_ARTIFACTS_PATH: "tests-artifacts-${{ github.sha }}"
6282
renku_notebooks: "@${{ github.head_ref }}"
6383
renku: "${{ needs.check-deploy.outputs.renku }}"
@@ -67,44 +87,16 @@ jobs:
6787
renku_data_services: "${{ needs.check-deploy.outputs.renku-data-services }}"
6888
renku_ui: "${{ needs.check-deploy.outputs.renku-ui }}"
6989
amalthea: "${{ needs.check-deploy.outputs.amalthea }}"
90+
amalthea_sessions: "${{ needs.check-deploy.outputs.amalthea-sessions }}"
7091
extra_values: "${{ needs.check-deploy.outputs.extra-values }}"
71-
- name: Check existing renkubot comment
72-
uses: peter-evans/find-comment@v3
73-
id: findcomment
74-
with:
75-
issue-number: ${{ github.event.pull_request.number }}
76-
comment-author: "RenkuBot"
77-
body-includes: "You can access the deployment of this PR at"
78-
- name: Create comment pre deploy
79-
if: steps.findcomment.outputs.comment-id == 0
80-
uses: peter-evans/create-or-update-comment@v4
81-
with:
82-
token: ${{ secrets.RENKUBOT_GITHUB_TOKEN }}
83-
issue-number: ${{ github.event.pull_request.number }}
84-
body: |
85-
You can access the deployment of this PR at https://renku-ci-nb-${{ github.event.number }}.dev.renku.ch
8692

87-
selenium-acceptance-tests:
93+
legacy-cypress-acceptance-tests:
94+
name: Legacy Cypress tests
95+
runs-on: ubuntu-24.04
8896
needs: [check-deploy, deploy-pr]
89-
if: github.event.action != 'closed' && needs.check-deploy.outputs.pr-contains-string == 'true' && needs.check-deploy.outputs.test-enabled == 'true'
90-
runs-on: ubuntu-22.04
91-
steps:
92-
- uses: SwissDataScienceCenter/renku-actions/[email protected]
93-
with:
94-
kubeconfig: ${{ secrets.RENKUBOT_DEV_KUBECONFIG }}
95-
renku-release: renku-ci-nb-${{ github.event.number }}
96-
gitlab-token: ${{ secrets.DEV_GITLAB_TOKEN }}
97-
s3-results-access-key: ${{ secrets.ACCEPTANCE_TESTS_BUCKET_ACCESS_KEY }}
98-
s3-results-secret-key: ${{ secrets.ACCEPTANCE_TESTS_BUCKET_SECRET_KEY }}
99-
test-timeout-mins: "60"
100-
101-
cypress-acceptance-tests:
102-
needs: [check-deploy, deploy-pr]
103-
if: github.event.action != 'closed' && needs.check-deploy.outputs.pr-contains-string == 'true' && needs.check-deploy.outputs.test-enabled == 'true'
104-
runs-on: ubuntu-22.04
97+
if: github.event.action != 'closed' && needs.check-deploy.outputs.pr-contains-string == 'true' && needs.check-deploy.outputs.test-legacy-enabled == 'true'
10598
strategy:
10699
fail-fast: false
107-
max-parallel: 1
108100
matrix:
109101
tests:
110102
- publicProject
@@ -114,25 +106,68 @@ jobs:
114106
- useSession
115107
- checkWorkflows
116108
- rstudioSession
117-
118109
steps:
119110
- name: Extract Renku repository reference
120111
run: echo "RENKU_REFERENCE=`echo '${{ needs.check-deploy.outputs.renku }}' | cut -d'@' -f2`" >> $GITHUB_ENV
121-
- uses: SwissDataScienceCenter/renku-actions/test-renku-cypress@v1.12.3
112+
- uses: SwissDataScienceCenter/renku-actions/test-renku-cypress@v1.14.2
122113
with:
123114
e2e-target: ${{ matrix.tests }}
124115
renku-reference: ${{ env.RENKU_REFERENCE }}
125116
renku-release: renku-ci-nb-${{ github.event.number }}
126117
test-user-password: ${{ secrets.RENKU_BOT_DEV_PASSWORD }}
118+
119+
cypress-acceptance-tests:
120+
name: Cypress tests
121+
runs-on: ubuntu-24.04
122+
needs: [check-deploy, deploy-pr]
123+
if: github.event.action != 'closed' && needs.check-deploy.outputs.pr-contains-string == 'true' && needs.check-deploy.outputs.test-enabled == 'true'
124+
strategy:
125+
fail-fast: false
126+
matrix:
127+
tests:
128+
- anonymousNavigation
129+
- dashboardV2
130+
- groupBasics
131+
- projectBasics
132+
- projectResources
133+
- searchEntities
134+
- sessionBasics
135+
steps:
136+
- name: Extract Renku repository reference
137+
run: echo "RENKU_REFERENCE=`echo '${{ needs.check-deploy.outputs.renku }}' | cut -d'@' -f2`" >> $GITHUB_ENV
138+
- uses: SwissDataScienceCenter/renku-actions/[email protected]
139+
with:
140+
e2e-target: ${{ matrix.tests }}
141+
renku-reference: ${{ env.RENKU_REFERENCE }}
142+
renku-release: renku-ci-nb-${{ github.event.number }}
143+
test-user-password: ${{ secrets.RENKU_BOT_DEV_PASSWORD }}
144+
127145

128146
cleanup:
147+
name: Cleanup
148+
runs-on: ubuntu-24.04
129149
needs: check-deploy
130150
if: github.event.action == 'closed' && needs.check-deploy.outputs.pr-contains-string == 'true'
131-
runs-on: ubuntu-22.04
151+
permissions:
152+
pull-requests: write
132153
steps:
133-
- uses: actions/checkout@v4
154+
- name: Find deplyoment url
155+
uses: peter-evans/find-comment@v3
156+
id: deploymentUrlMessage
157+
with:
158+
issue-number: ${{ github.event.pull_request.number }}
159+
comment-author: "RenkuBot"
160+
body-includes: "Tearing down the temporary RenkuLab deplyoment"
161+
- name: Create comment deployment url
162+
if: steps.deploymentUrlMessage.outputs.comment-id == 0
163+
uses: peter-evans/create-or-update-comment@v4
164+
with:
165+
token: ${{ secrets.RENKUBOT_GITHUB_TOKEN }}
166+
issue-number: ${{ github.event.pull_request.number }}
167+
body: |
168+
Tearing down the temporary RenkuLab deplyoment for this PR.
134169
- name: renku teardown
135-
uses: SwissDataScienceCenter/renku-actions/cleanup-renku-ci-deployments@v1.12.3
170+
uses: SwissDataScienceCenter/renku-actions/cleanup-renku-ci-deployments@v1.14.2
136171
env:
137172
HELM_RELEASE_REGEX: "^renku-ci-nb-${{ github.event.number }}$"
138173
GITLAB_TOKEN: ${{ secrets.DEV_GITLAB_TOKEN }}

0 commit comments

Comments
 (0)