@@ -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,23 @@ 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
+ kubectl_version : v1.31.0
87
+ registry : true
88
+ registry_name : my-registry
89
+ registry_port : 5001
90
+ registry_enable_delete : true
79
91
80
92
- name : Install playwright
81
93
run : |
@@ -88,122 +100,134 @@ jobs:
88
100
- name : Lint with flake8
89
101
run : |
90
102
# stop the build if there are Python syntax errors or undefined names
91
- flake8 . --count --select=E9,F63,F7,F82 --show-source --statistics
103
+ flake8 ./playwright --count --select=E9,F63,F7,F82 --show-source --statistics
92
104
# 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 }}
105
+ flake8 ./playwright --count --exit-zero --max-complexity=10 --max-line-length=127 --statistics
98
106
99
107
- name : Extract branch name
100
108
run : |
101
109
echo "branch_name=${GITHUB_HEAD_REF:-${GITHUB_REF#refs/heads/}}" >> $GITHUB_OUTPUT
102
110
id : extract_branch
103
111
104
- - name : Setup wego enterprise
112
+ - name : Setup flux
105
113
run : |
106
114
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
115
+ flux install --components-extra="image-reflector-controller,image-automation-controller"
116
+ kubectl rollout status deployment/source-controller -n flux-system
117
+ kubectl rollout status deployment/kustomize-controller -n flux-system
118
+ kubectl rollout status deployment/helm-controller -n flux-system
119
+ kubectl rollout status deployment/notification-controller -n flux-system
120
+ kubectl rollout status deployment/image-reflector-controller -n flux-system
121
+ kubectl rollout status deployment/image-automation-controller -n flux-system
122
+ echo
123
+ kubectl get deployments -n flux-system
124
+
125
+ - name : Install test resources
126
+ run : |
127
+ kubectl apply -k tools/dev-resources
128
+ kubectl rollout status deployment/kube-prometheus-stack-grafana -n monitoring
129
+ kubectl rollout status DaemonSet/loki-stack-promtail -n monitoring
130
+ kubectl rollout status deployment/podinfo -n default
131
+
132
+ # kubectl create secret generic git-provider-credentials -n flux-system --from-literal=username="weave-gitops-bot" --from-literal=password="${WEAVEWORKS_BOT_TOKEN}"
133
+ # sed -i 's/BRANCH_NAME/${{ steps.extract_branch.outputs.branch_name }}/' ./playwright/utils/scripts/resources/flux-system-gitrepo.yaml
134
+ # ./playwright/utils/scripts/wego-enterprise.sh setup ./utils/scripts
135
+ #
136
+ # - name: Install violating-app
137
+ # run: |
138
+ # kubectl apply -f ./playwright/utils/data/violating-podinfo-kustomization.yaml
139
+ #
140
+ # - name: Install policies
141
+ # run: |
142
+ # kubectl apply -f ./playwright/utils/data/policies.yaml
143
+ #
144
+ # - name: Flux reconcile violating app
145
+ # run: |
146
+ # flux reconcile kustomization violating-podinfo -n default --with-source || true
147
+ # kubectl get pods -A
148
+ #
149
+ # - name: Install gitopsset-configmaps
150
+ # run: |
151
+ # kubectl apply -f ./playwright/utils/data/gitops-sets-kustomization.yaml
152
+ #
153
+ # - name: run tests
154
+ # if: success()
155
+ # run: |
156
+ # 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
157
+ #
158
+ # - name: Generate tests report
159
+ # if: always()
160
+ # uses: pmeier/pytest-results-action@main
161
+ # with:
162
+ # path: test-results/junit_test_report.xml
163
+ # summary: true
164
+ # display-options: fEX
165
+ # fail-on-empty: true
166
+ #
167
+ # - name: Upload test report
168
+ # uses: actions/upload-artifact@65c4c4a1ddee5b72f698fdd19549f0f0fb45cf08 # v4.6.0
169
+ # if: success() || failure()
170
+ # with:
171
+ # name: playwright-tests-report
172
+ # path: test-results/
173
+ # retention-days: 3
174
+ #
175
+ # - name: Download test artifacts
176
+ # uses: actions/download-artifact@v4.1.8
177
+ # if: success() || failure()
178
+ # with:
179
+ # name: playwright-tests-report
180
+ # path: test-results/
181
+ #
182
+ # - name: Display structure of downloaded files
183
+ # if: always()
184
+ # run: ls -R
185
+ # working-directory: test-results
186
+ #
187
+ # - name: Publish test report
188
+ # id: test_summary
189
+ # uses: mikepenz/action-junit-report@v5.2.0
190
+ # if: success() || failure()
191
+ # with:
192
+ # report_paths: test-results/junit_test_report.xml
193
+ #
194
+ # - name: Notify Slack
195
+ # id: slack
196
+ # uses: slackapi/slack-github-action@v2.0.0
197
+ # with:
198
+ # channel-id: C058RPVS5DZ
199
+ # payload: |
200
+ # {
201
+ # "blocks": [
202
+ # {
203
+ # "type": "section",
204
+ # "text": {
205
+ # "type": "mrkdwn",
206
+ # "text": "*Tests result:*"
207
+ # }
208
+ # },
209
+ # {
210
+ # "type": "section",
211
+ # "text": {
212
+ # "type": "mrkdwn",
213
+ # "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}}*"
214
+ # }
215
+ # },
216
+ # {
217
+ # "type": "section",
218
+ # "text": {
219
+ # "type": "mrkdwn",
220
+ # "text": "*View result on Github:* ${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}"
221
+ # }
222
+ # }
223
+ # ]
224
+ # }
225
+ # if: always()
226
+ # env:
227
+ # SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL }}
228
+ # SLACK_WEBHOOK_TYPE: INCOMING_WEBHOOK
229
+
230
+ # - name : Delete test cluster
231
+ # if: success() || failure()
232
+ # run: |
233
+ # kind delete clusters --all
0 commit comments