chore: get playwright working again #541
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Playwright Tests | |
on: | |
push: | |
branches: "**" | |
pull_request: | |
branches: "**" | |
# schedule: | |
# - cron: "30 22 * * *" | |
workflow_dispatch: | |
inputs: | |
chart_version: | |
description: 'weave gitops enterprise chart version' | |
required: true | |
type: string | |
env: | |
MANAGEMENT_CLUSTER_TYPE: "kind" | |
CLUSTER_NAME: run-playwright-tests-${{ github.run_id }} | |
USER_NAME: wego-admin | |
PASSWORD: ${{ secrets.CLUSTERS_CONFIG_PASSWORD }} | |
WEAVE_GITOPS_DEV_SOPS_KEY: ${{ secrets.WEAVE_GITOPS_DEV_SOPS_KEY }} | |
CLUSTER_ADMIN_PASSWORD_HASH: ${{ secrets.CLUSTERS_CONFIG_PASSWORD }} | |
WEAVEWORKS_BOT_TOKEN: ${{ secrets.WEAVEWORKS_BOT_TOKEN }} | |
ENTERPRISE_CHART_VERSION: ${{ inputs.chart_version }} | |
DEFAULT_ENTERPRISE_CHART_VERSION: "0.31.0-9-gdae6755" | |
jobs: | |
build_and_run_tests: | |
runs-on: ubuntu-latest | |
permissions: | |
id-token: write | |
contents: read | |
steps: | |
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 | |
- name : Set URL environment Variable | |
run: | | |
echo "URL=http://localhost:8000" >> $GITHUB_ENV | |
- name: Check if the URL variable is available | |
run: | | |
echo ${{ env.URL }} | |
- name: Set up Python 3.10 | |
uses: actions/setup-python@v5 | |
with: | |
python-version: "3.10" | |
- name: Install dependencies | |
run: | | |
python -m pip install --upgrade pip | |
pip install flake8 pytest | |
pip install pytest_dotenv | |
pip install pytest-reporter-html1 | |
- name: Install pre-commit | |
run: | | |
pip install pre-commit | |
- name: Install flux | |
run: | | |
curl -s https://fluxcd.io/install.sh | sudo bash | |
flux version --client | |
- name: Install kubectl | |
run: | | |
curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl" | |
chmod +x kubectl | |
sudo mv ./kubectl /usr/local/bin/kubectl | |
kubectl version --client | |
- name: Kubernetes KinD Cluster | |
id: kind | |
uses: helm/kind-action@v1 | |
with: | |
cluster_name: 'weave-gitops-community' | |
kubectl_version: v1.31.0 | |
registry: true | |
registry_name: werave-registry | |
registry_port: 5001 | |
registry_enable_delete: true | |
- name: Install playwright | |
run: | | |
pip install pytest-playwright | |
- name: Install chromium | |
run: | | |
playwright install chromium | |
- name: Lint with flake8 | |
run: | | |
# stop the build if there are Python syntax errors or undefined names | |
flake8 ./playwright --count --select=E9,F63,F7,F82 --show-source --statistics | |
# exit-zero treats all errors as warnings. The GitHub editor is 127 chars wide | |
flake8 ./playwright --count --exit-zero --max-complexity=10 --max-line-length=127 --statistics | |
- name: Extract branch name | |
run: | | |
echo "branch_name=${GITHUB_HEAD_REF:-${GITHUB_REF#refs/heads/}}" >> $GITHUB_OUTPUT | |
id: extract_branch | |
- name: Setup flux | |
run: | | |
kubectl create namespace flux-system | |
kubectl create namespace violations | |
flux install --components-extra="image-reflector-controller,image-automation-controller" | |
sleep 5 | |
kubectl rollout status deployment/source-controller -n flux-system | |
kubectl rollout status deployment/kustomize-controller -n flux-system | |
kubectl rollout status deployment/helm-controller -n flux-system | |
kubectl rollout status deployment/notification-controller -n flux-system | |
kubectl rollout status deployment/image-reflector-controller -n flux-system | |
kubectl rollout status deployment/image-automation-controller -n flux-system | |
echo | |
kubectl get deployments -n flux-system | |
- name: Install test resources | |
run: | | |
kubectl apply -k tools/dev-resources | |
sleep 15 | |
kubectl rollout status deployment/kube-prometheus-stack-grafana -n monitoring | |
kubectl rollout status deployment/podinfo -n default | |
sleep 10 | |
kubectl rollout status DaemonSet/loki-stack-promtail -n monitoring | |
kubectl get DaemonSet/loki-stack-promtail -n monitoring | |
- name: Install violating-app | |
run: | | |
kubectl apply -f ./tools/dev-resources/data/violating-podinfo-kustomization.yaml | |
- name: Flux reconcile violating app | |
run: | | |
flux reconcile kustomization violating-podinfo -n violations --with-source || true | |
kubectl get pods -A | |
# - name: run tests | |
# if: success() | |
# run: | | |
# 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 | |
# | |
# - name: Generate tests report | |
# if: always() | |
# uses: pmeier/pytest-results-action@main | |
# with: | |
# path: test-results/junit_test_report.xml | |
# summary: true | |
# display-options: fEX | |
# fail-on-empty: true | |
# | |
# - name: Upload test report | |
# uses: actions/upload-artifact@65c4c4a1ddee5b72f698fdd19549f0f0fb45cf08 # v4.6.0 | |
# if: success() || failure() | |
# with: | |
# name: playwright-tests-report | |
# path: test-results/ | |
# retention-days: 3 | |
# | |
# - name: Download test artifacts | |
# uses: actions/[email protected] | |
# if: success() || failure() | |
# with: | |
# name: playwright-tests-report | |
# path: test-results/ | |
# | |
# - name: Display structure of downloaded files | |
# if: always() | |
# run: ls -R | |
# working-directory: test-results | |
# | |
# - name: Publish test report | |
# id: test_summary | |
# uses: mikepenz/[email protected] | |
# if: success() || failure() | |
# with: | |
# report_paths: test-results/junit_test_report.xml | |
# | |
# - name: Notify Slack | |
# id: slack | |
# uses: slackapi/[email protected] | |
# with: | |
# channel-id: C058RPVS5DZ | |
# payload: | | |
# { | |
# "blocks": [ | |
# { | |
# "type": "section", | |
# "text": { | |
# "type": "mrkdwn", | |
# "text": "*Tests result:*" | |
# } | |
# }, | |
# { | |
# "type": "section", | |
# "text": { | |
# "type": "mrkdwn", | |
# "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}}*" | |
# } | |
# }, | |
# { | |
# "type": "section", | |
# "text": { | |
# "type": "mrkdwn", | |
# "text": "*View result on Github:* ${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}" | |
# } | |
# } | |
# ] | |
# } | |
# if: always() | |
# env: | |
# SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL }} | |
# SLACK_WEBHOOK_TYPE: INCOMING_WEBHOOK | |
# - name : Delete test cluster | |
# if: success() || failure() | |
# run: | | |
# kind delete clusters --all |