@@ -2,7 +2,9 @@ name: Playwright Tests
2
2
3
3
on :
4
4
push :
5
- branches : " disabled"
5
+ branches : " **"
6
+ pull_request :
7
+ branches : " **"
6
8
# schedule:
7
9
# - cron: "30 22 * * *"
8
10
workflow_dispatch :
33
35
contents : read
34
36
35
37
steps :
36
- - uses : actions/checkout@v3
38
+ - uses : actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
37
39
- name : Set URL environment Variable
38
40
run : |
39
41
echo "URL=http://localhost:8000" >> $GITHUB_ENV
@@ -69,13 +71,24 @@ jobs:
69
71
sudo mv ./kubectl /usr/local/bin/kubectl
70
72
kubectl version --client
71
73
72
- - name : Install kind
73
- run : |
74
- curl -Lo ./kind https://kind.sigs.k8s.io/dl/v0.20.0/kind-linux-amd64
75
- chmod +x ./kind
76
- sudo mv ./kind /usr/local/bin/kind
77
- which kind
78
- kind version
74
+ # - name: Install kind
75
+ # run: |
76
+ # curl -Lo ./kind https://kind.sigs.k8s.io/dl/v0.20.0/kind-linux-amd64
77
+ # chmod +x ./kind
78
+ # sudo mv ./kind /usr/local/bin/kind
79
+ # which kind
80
+ # kind version
81
+
82
+ - name : Kubernetes KinD Cluster
83
+ id : kind
84
+ uses : helm/kind-action@v1
85
+ with :
86
+ cluster_name : ' weave-gitops-community'
87
+ kubectl_version : v1.31.0
88
+ registry : true
89
+ registry_name : werave-registry
90
+ registry_port : 5001
91
+ registry_enable_delete : true
79
92
80
93
- name : Install playwright
81
94
run : |
@@ -88,122 +101,136 @@ jobs:
88
101
- name : Lint with flake8
89
102
run : |
90
103
# stop the build if there are Python syntax errors or undefined names
91
- flake8 . --count --select=E9,F63,F7,F82 --show-source --statistics
104
+ flake8 ./playwright --count --select=E9,F63,F7,F82 --show-source --statistics
92
105
# exit-zero treats all errors as warnings. The GitHub editor is 127 chars wide
93
- flake8 . --count --exit-zero --max-complexity=10 --max-line-length=127 --statistics
94
-
95
- - name : Setup management cluster
96
- run : |
97
- ./utils/scripts/mgmt-cluster-setup.sh ${{ env.MANAGEMENT_CLUSTER_TYPE }} $(pwd) ${{ env.CLUSTER_NAME }}
106
+ flake8 ./playwright --count --exit-zero --max-complexity=10 --max-line-length=127 --statistics
98
107
99
108
- name : Extract branch name
100
109
run : |
101
110
echo "branch_name=${GITHUB_HEAD_REF:-${GITHUB_REF#refs/heads/}}" >> $GITHUB_OUTPUT
102
111
id : extract_branch
103
112
104
- - name : Setup wego enterprise
113
+ - name : Setup flux
105
114
run : |
106
115
kubectl create namespace flux-system
107
- flux install
108
- kubectl create secret generic git-provider-credentials -n flux-system --from-literal=username="weave-gitops-bot" --from-literal=password="${WEAVEWORKS_BOT_TOKEN}"
109
- sed -i 's/BRANCH_NAME/${{ steps.extract_branch.outputs.branch_name }}/' ./utils/scripts/resources/flux-system-gitrepo.yaml
110
- ./utils/scripts/wego-enterprise.sh setup ./utils/scripts
111
-
112
- - name : Install violating-app
113
- run : |
114
- kubectl apply -f ./utils/data/violating-podinfo-kustomization.yaml
115
-
116
- - name : Install policies
117
- run : |
118
- kubectl apply -f ./utils/data/policies.yaml
119
-
120
- - name : Flux reconcile violating app
121
- run : |
122
- flux reconcile kustomization violating-podinfo -n default --with-source || true
123
- kubectl get pods -A
124
-
125
- - name : Install gitopsset-configmaps
126
- run : |
127
- kubectl apply -f ./utils/data/gitops-sets-kustomization.yaml
128
-
129
- - name : run tests
130
- if : success()
131
- run : |
132
- pytest -s -v --video=retain-on-failure --screenshot=only-on-failure --template=html1/index.html --report=test-results/test-run-report.html -o junit_family=xunit2 --junit-xml=test-results/junit_test_report.xml
133
-
134
- - name : Generate tests report
135
- if : always()
136
- uses : pmeier/pytest-results-action@main
137
- with :
138
- path : test-results/junit_test_report.xml
139
- summary : true
140
- display-options : fEX
141
- fail-on-empty : true
142
-
143
- - name : Upload test report
144
- uses : actions/upload-artifact@65c4c4a1ddee5b72f698fdd19549f0f0fb45cf08 # v4.6.0
145
- if : success() || failure()
146
- with :
147
- name : playwright-tests-report
148
- path : test-results/
149
- retention-days : 3
150
-
151
- - name : Download test artifacts
152
- uses : actions/download-artifact@v4.1.8
153
- if : success() || failure()
154
- with :
155
- name : playwright-tests-report
156
- path : test-results/
157
-
158
- - name : Display structure of downloaded files
159
- if : always()
160
- run : ls -R
161
- working-directory : test-results
162
-
163
- - name : Publish test report
164
- id : test_summary
165
- uses : mikepenz/action-junit-report@v5.2.0
166
- if : success() || failure()
167
- with :
168
- report_paths : test-results/junit_test_report.xml
169
-
170
- - name : Notify Slack
171
- id : slack
172
- uses : slackapi/slack-github-action@v2.0.0
173
- with :
174
- channel-id : C058RPVS5DZ
175
- payload : |
176
- {
177
- "blocks": [
178
- {
179
- "type": "section",
180
- "text": {
181
- "type": "mrkdwn",
182
- "text": "*Tests result:*"
183
- }
184
- },
185
- {
186
- "type": "section",
187
- "text": {
188
- "type": "mrkdwn",
189
- "text": "Tests :test_tube:\t\t\tPassed :check:\t\t\tSkipped :arrow_right_hook:\t\t\tFailed :x:\n>executed:*${{steps.test_summary.outputs.total}}*\t\t\tpassed:*${{steps.test_summary.outputs.passed}}*\t\t\tskipped:*${{steps.test_summary.outputs.skipped}}*\t\t\tfailed:*${{steps.test_summary.outputs.failed}}*"
190
- }
191
- },
192
- {
193
- "type": "section",
194
- "text": {
195
- "type": "mrkdwn",
196
- "text": "*View result on Github:* ${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}"
197
- }
198
- }
199
- ]
200
- }
201
- if : always()
202
- env :
203
- SLACK_WEBHOOK_URL : ${{ secrets.SLACK_WEBHOOK_URL }}
204
- SLACK_WEBHOOK_TYPE : INCOMING_WEBHOOK
205
-
206
- - name : Delete test cluster
207
- if : success() || failure()
208
- run : |
209
- kind delete clusters --all
116
+ flux install --components-extra="image-reflector-controller,image-automation-controller"
117
+ kubectl rollout status deployment/source-controller -n flux-system
118
+ kubectl rollout status deployment/kustomize-controller -n flux-system
119
+ kubectl rollout status deployment/helm-controller -n flux-system
120
+ kubectl rollout status deployment/notification-controller -n flux-system
121
+ kubectl rollout status deployment/image-reflector-controller -n flux-system
122
+ kubectl rollout status deployment/image-automation-controller -n flux-system
123
+ echo
124
+ kubectl get deployments -n flux-system
125
+
126
+ - name : Install test resources
127
+ run : |
128
+ kubectl apply -k tools/dev-resources
129
+ sleep 30
130
+ kubectl rollout status deployment/kube-prometheus-stack-grafana -n monitoring
131
+ kubectl rollout status deployment/podinfo -n default
132
+ sleep 15
133
+ kubectl rollout status DaemonSet/loki-stack-promtail -n monitoring
134
+
135
+ # kubectl create secret generic git-provider-credentials -n flux-system --from-literal=username="weave-gitops-bot" --from-literal=password="${WEAVEWORKS_BOT_TOKEN}"
136
+ # sed -i 's/BRANCH_NAME/${{ steps.extract_branch.outputs.branch_name }}/' ./playwright/utils/scripts/resources/flux-system-gitrepo.yaml
137
+ # ./playwright/utils/scripts/wego-enterprise.sh setup ./utils/scripts
138
+ #
139
+ # - name: Install violating-app
140
+ # run: |
141
+ # kubectl apply -f ./playwright/utils/data/violating-podinfo-kustomization.yaml
142
+ #
143
+ # - name: Install policies
144
+ # run: |
145
+ # kubectl apply -f ./playwright/utils/data/policies.yaml
146
+ #
147
+ # - name: Flux reconcile violating app
148
+ # run: |
149
+ # flux reconcile kustomization violating-podinfo -n default --with-source || true
150
+ # kubectl get pods -A
151
+ #
152
+ # - name: Install gitopsset-configmaps
153
+ # run: |
154
+ # kubectl apply -f ./playwright/utils/data/gitops-sets-kustomization.yaml
155
+ #
156
+ # - name: run tests
157
+ # if: success()
158
+ # run: |
159
+ # pytest -s -v --video=retain-on-failure --screenshot=only-on-failure --template=html1/index.html --report=test-results/test-run-report.html -o junit_family=xunit2 --junit-xml=test-results/junit_test_report.xml
160
+ #
161
+ # - name: Generate tests report
162
+ # if: always()
163
+ # uses: pmeier/pytest-results-action@main
164
+ # with:
165
+ # path: test-results/junit_test_report.xml
166
+ # summary: true
167
+ # display-options: fEX
168
+ # fail-on-empty: true
169
+ #
170
+ # - name: Upload test report
171
+ # uses: actions/upload-artifact@65c4c4a1ddee5b72f698fdd19549f0f0fb45cf08 # v4.6.0
172
+ # if: success() || failure()
173
+ # with:
174
+ # name: playwright-tests-report
175
+ # path: test-results/
176
+ # retention-days: 3
177
+ #
178
+ # - name: Download test artifacts
179
+ # uses: actions/download-artifact@v4.1.8
180
+ # if: success() || failure()
181
+ # with:
182
+ # name: playwright-tests-report
183
+ # path: test-results/
184
+ #
185
+ # - name: Display structure of downloaded files
186
+ # if: always()
187
+ # run: ls -R
188
+ # working-directory: test-results
189
+ #
190
+ # - name: Publish test report
191
+ # id: test_summary
192
+ # uses: mikepenz/action-junit-report@v5.2.0
193
+ # if: success() || failure()
194
+ # with:
195
+ # report_paths: test-results/junit_test_report.xml
196
+ #
197
+ # - name: Notify Slack
198
+ # id: slack
199
+ # uses: slackapi/slack-github-action@v2.0.0
200
+ # with:
201
+ # channel-id: C058RPVS5DZ
202
+ # payload: |
203
+ # {
204
+ # "blocks": [
205
+ # {
206
+ # "type": "section",
207
+ # "text": {
208
+ # "type": "mrkdwn",
209
+ # "text": "*Tests result:*"
210
+ # }
211
+ # },
212
+ # {
213
+ # "type": "section",
214
+ # "text": {
215
+ # "type": "mrkdwn",
216
+ # "text": "Tests :test_tube:\t\t\tPassed :check:\t\t\tSkipped :arrow_right_hook:\t\t\tFailed :x:\n>executed:*${{steps.test_summary.outputs.total}}*\t\t\tpassed:*${{steps.test_summary.outputs.passed}}*\t\t\tskipped:*${{steps.test_summary.outputs.skipped}}*\t\t\tfailed:*${{steps.test_summary.outputs.failed}}*"
217
+ # }
218
+ # },
219
+ # {
220
+ # "type": "section",
221
+ # "text": {
222
+ # "type": "mrkdwn",
223
+ # "text": "*View result on Github:* ${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}"
224
+ # }
225
+ # }
226
+ # ]
227
+ # }
228
+ # if: always()
229
+ # env:
230
+ # SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL }}
231
+ # SLACK_WEBHOOK_TYPE: INCOMING_WEBHOOK
232
+
233
+ # - name : Delete test cluster
234
+ # if: success() || failure()
235
+ # run: |
236
+ # kind delete clusters --all
0 commit comments