From d47b855ad281e0255585d537198afcc6a762762e Mon Sep 17 00:00:00 2001 From: omri zaher Date: Fri, 8 Aug 2025 18:06:56 +0300 Subject: [PATCH 1/8] Add installation of Chromium ChromeDriver in UI testing workflow --- .github/workflows/ui-testing.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/ui-testing.yml b/.github/workflows/ui-testing.yml index 04a69e5a8..e70afb562 100644 --- a/.github/workflows/ui-testing.yml +++ b/.github/workflows/ui-testing.yml @@ -32,6 +32,7 @@ jobs: run: | sudo apt-get update sudo apt-get install -y google-chrome-stable + sudo apt-get install -y chromium-chromedriver - name: Run Selenium tests env: From 93d9ee48ed166446a192ad88c788c236a60ca2fc Mon Sep 17 00:00:00 2001 From: omri zaher Date: Fri, 8 Aug 2025 18:12:44 +0300 Subject: [PATCH 2/8] Fix environment variable setup for Chrome and ChromeDriver in UI testing workflow --- .github/workflows/ui-testing.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.github/workflows/ui-testing.yml b/.github/workflows/ui-testing.yml index e70afb562..71759190b 100644 --- a/.github/workflows/ui-testing.yml +++ b/.github/workflows/ui-testing.yml @@ -33,6 +33,9 @@ jobs: sudo apt-get update sudo apt-get install -y google-chrome-stable sudo apt-get install -y chromium-chromedriver + env: + CHROME_BIN: /usr/bin/google-chrome + CHROMEDRIVER_BIN: /usr/bin/chromedriver - name: Run Selenium tests env: From 4949fdd7bb5878053299200297388abe3e0dbdcf Mon Sep 17 00:00:00 2001 From: omri zaher Date: Fri, 8 Aug 2025 18:16:29 +0300 Subject: [PATCH 3/8] Remove deprecated workflow files: depsreview.yaml, release.yml, and test_suite.yml --- .github/workflows/depsreview.yaml | 14 --- .github/workflows/release.yml | 30 ------ .github/workflows/test_suite.yml | 163 ------------------------------ 3 files changed, 207 deletions(-) delete mode 100644 .github/workflows/depsreview.yaml delete mode 100644 .github/workflows/release.yml delete mode 100644 .github/workflows/test_suite.yml diff --git a/.github/workflows/depsreview.yaml b/.github/workflows/depsreview.yaml deleted file mode 100644 index b9d6d20ff..000000000 --- a/.github/workflows/depsreview.yaml +++ /dev/null @@ -1,14 +0,0 @@ -name: 'Dependency Review' -on: [pull_request] - -permissions: - contents: read - -jobs: - dependency-review: - runs-on: ubuntu-latest - steps: - - name: 'Checkout Repository' - uses: actions/checkout@v4 - - name: 'Dependency Review' - uses: actions/dependency-review-action@v4 diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml deleted file mode 100644 index fcdbed26d..000000000 --- a/.github/workflows/release.yml +++ /dev/null @@ -1,30 +0,0 @@ -name: Release Charts - -on: - push: - branches: - - main - -permissions: - contents: read - -jobs: - release: - permissions: - contents: write # for helm/chart-releaser-action to push chart release and create a release - runs-on: ubuntu-latest - steps: - - name: Checkout - uses: actions/checkout@v4 - with: - fetch-depth: 0 - - - name: Configure Git - run: | - git config user.name "$GITHUB_ACTOR" - git config user.email "$GITHUB_ACTOR@users.noreply.github.com" - - - name: Run chart-releaser - uses: helm/chart-releaser-action@v1.7.0 - env: - CR_TOKEN: "${{ secrets.GITHUB_TOKEN }}" diff --git a/.github/workflows/test_suite.yml b/.github/workflows/test_suite.yml deleted file mode 100644 index a02b3e254..000000000 --- a/.github/workflows/test_suite.yml +++ /dev/null @@ -1,163 +0,0 @@ -name: Test suite - -on: - push: - branches: - - main - pull_request: - -permissions: - contents: read # to fetch code (actions/checkout) - -jobs: -# the following are optional jobs and need to be configured according -# to this project's settings: -# -# lintcode: -# name: Javascript lint -# runs-on: ubuntu-latest -# steps: -# - name: checkout -# uses: actions/checkout@v4 -# -# - name: setup node -# uses: actions/setup-node@v1 -# with: -# node-version: '12.x' -# -# - name: cache dependencies -# uses: actions/cache@v1 -# with: -# path: ~/.npm -# key: ${{ runner.os }}-node-${{ hashFiles('**/package-lock.json') }} -# restore-keys: | -# ${{ runner.os }}-node- -# -# - run: npm install -# - run: npm run lint:code -# -# lintstyle: -# name: SCSS lint -# runs-on: ubuntu-latest -# needs: [lintcode] -# steps: -# - name: checkout -# uses: actions/checkout@v4 -# -# - name: setup node -# uses: actions/setup-node@v1 -# with: -# node-version: '12.x' -# -# - name: cache dependencies -# uses: actions/cache@v1 -# with: -# path: ~/.npm -# key: ${{ runner.os }}-node-${{ hashFiles('**/package-lock.json') }} -# restore-keys: | -# ${{ runner.os }}-node- -# - run: npm install -# - run: npm run lint:style -# -# lintdocs: -# name: documentation lint -# runs-on: ubuntu-latest -# needs: [lintcode,lintstyle] -# steps: -# - name: checkout -# uses: actions/checkout@v4 -# -# - name: setup node -# uses: actions/setup-node@v1 -# with: -# node-version: '12.x' -# -# - name: cache dependencies -# uses: actions/cache@v1 -# with: -# path: ~/.npm -# key: ${{ runner.os }}-node-${{ hashFiles('**/package-lock.json') }} -# restore-keys: | -# ${{ runner.os }}-node- -# -# - run: npm install -# - run: npm run lint:markdown - - tests: - name: Meteor ${{ matrix.meteor }} tests - runs-on: ubuntu-latest - steps: - - # CHECKOUTS - - name: Checkout - uses: actions/checkout@v4 - - # CACHING - - name: Install Meteor - id: cache-meteor-install - uses: actions/cache@v4 - with: - path: ~/.meteor - key: v1-meteor-${{ hashFiles('.meteor/versions') }} - restore-keys: | - v1-meteor- - - - name: Cache NPM dependencies - id: cache-meteor-npm - uses: actions/cache@v4 - with: - path: ~/.npm - key: v1-npm-${{ hashFiles('package-lock.json') }} - restore-keys: | - v1-npm- - - - name: Cache Meteor build - id: cache-meteor-build - uses: actions/cache@v4 - with: - path: | - .meteor/local/resolver-result-cache.json - .meteor/local/plugin-cache - .meteor/local/isopacks - .meteor/local/bundler-cache/scanner - key: v1-meteor_build_cache-${{ github.ref }}-${{ github.sha }} - restore-keys: | - v1-meteor_build_cache- - - - name: Setup meteor - uses: meteorengineer/setup-meteor@v2 - with: - meteor-release: '2.2' - - - name: Install NPM Dependencies - run: meteor npm ci - - - name: Run Tests - run: sh ./test-wekan.sh -cv - - - name: Upload coverage - uses: actions/upload-artifact@v4 - with: - name: coverage-folder - path: .coverage/ - - coverage: - name: Coverage report - runs-on: ubuntu-latest - needs: [tests] - steps: - - name: Checkout - uses: actions/checkout@v4 - - - name: Download coverage - uses: actions/download-artifact@v4 - with: - name: coverage-folder - path: .coverage/ - - - - name: Coverage Report - uses: VeryGoodOpenSource/very_good_coverage@v3.0.0 - with: - path: ".coverage/lcov.info" - min_coverage: 1 # TODO add tests and increase to 95! From b9b6614d80cf84944fda962b53c7e6f34a3e0e74 Mon Sep 17 00:00:00 2001 From: omri zaher Date: Fri, 8 Aug 2025 18:45:21 +0300 Subject: [PATCH 4/8] Remove installation of Chromium ChromeDriver from UI testing workflow --- .github/workflows/ui-testing.yml | 4 ---- 1 file changed, 4 deletions(-) diff --git a/.github/workflows/ui-testing.yml b/.github/workflows/ui-testing.yml index 71759190b..04a69e5a8 100644 --- a/.github/workflows/ui-testing.yml +++ b/.github/workflows/ui-testing.yml @@ -32,10 +32,6 @@ jobs: run: | sudo apt-get update sudo apt-get install -y google-chrome-stable - sudo apt-get install -y chromium-chromedriver - env: - CHROME_BIN: /usr/bin/google-chrome - CHROMEDRIVER_BIN: /usr/bin/chromedriver - name: Run Selenium tests env: From fd692341373cb0ab2c7bb28b883d7602104dd3e1 Mon Sep 17 00:00:00 2001 From: omri zaher Date: Fri, 8 Aug 2025 18:48:35 +0300 Subject: [PATCH 5/8] Update UI testing workflow to run tests with sudo --- .github/workflows/docker-publish.yml | 63 ---------------------------- .github/workflows/dockerimage.yml | 20 --------- .github/workflows/ui-testing.yml | 2 +- 3 files changed, 1 insertion(+), 84 deletions(-) delete mode 100644 .github/workflows/docker-publish.yml delete mode 100644 .github/workflows/dockerimage.yml diff --git a/.github/workflows/docker-publish.yml b/.github/workflows/docker-publish.yml deleted file mode 100644 index fce03001f..000000000 --- a/.github/workflows/docker-publish.yml +++ /dev/null @@ -1,63 +0,0 @@ -name: Docker - -# This workflow uses actions that are not certified by GitHub. -# They are provided by a third-party and are governed by -# separate terms of service, privacy policy, and support -# documentation. - -on: - schedule: - - cron: '28 23 * * *' - push: - branches: [ main ] - # Publish semver tags as releases. - tags: [ 'v*.*.*' ] - pull_request: - branches: [ main ] - -env: - # Use docker.io for Docker Hub if empty - REGISTRY: ghcr.io - # github.repository as / - IMAGE_NAME: ${{ github.repository }} - - -jobs: - build: - - runs-on: ubuntu-latest - permissions: - contents: read - packages: write - - steps: - - name: Checkout repository - uses: actions/checkout@v4 - - # Login against a Docker registry except on PR - # https://github.com/docker/login-action - - name: Log into registry ${{ env.REGISTRY }} - if: github.event_name != 'pull_request' - uses: docker/login-action@74a5d142397b4f367a81961eba4e8cd7edddf772 - with: - registry: ${{ env.REGISTRY }} - username: ${{ github.actor }} - password: ${{ secrets.GITHUB_TOKEN }} - - # Extract metadata (tags, labels) for Docker - # https://github.com/docker/metadata-action - - name: Extract Docker metadata - id: meta - uses: docker/metadata-action@902fa8ec7d6ecbf8d84d538b9b233a880e428804 - with: - images: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }} - - # Build and push Docker image with Buildx (don't push on PR) - # https://github.com/docker/build-push-action - - name: Build and push Docker image - uses: docker/build-push-action@263435318d21b8e681c14492fe198d362a7d2c83 - with: - context: . - push: ${{ github.event_name != 'pull_request' }} - tags: ${{ steps.meta.outputs.tags }} - labels: ${{ steps.meta.outputs.labels }} diff --git a/.github/workflows/dockerimage.yml b/.github/workflows/dockerimage.yml deleted file mode 100644 index 0a081ae7c..000000000 --- a/.github/workflows/dockerimage.yml +++ /dev/null @@ -1,20 +0,0 @@ -name: Docker Image CI - -on: - push: - branches: - - main - -permissions: - contents: read - -jobs: - - build: - - runs-on: ubuntu-latest - - steps: - - uses: actions/checkout@v4 - - name: Build the Docker image - run: docker build . --file Dockerfile --tag wekan:$(date +%s) diff --git a/.github/workflows/ui-testing.yml b/.github/workflows/ui-testing.yml index 04a69e5a8..a81b9c7d8 100644 --- a/.github/workflows/ui-testing.yml +++ b/.github/workflows/ui-testing.yml @@ -38,4 +38,4 @@ jobs: HEADLESS: true WEKAN_URL: http://${{ secrets.WEKAN_URL }}:80 run: | - pytest tests/ -v + sudo pytest tests/ -v From c7cf4c423728d5ad55b82fee38780e3b8567181f Mon Sep 17 00:00:00 2001 From: omri zaher Date: Fri, 8 Aug 2025 18:49:48 +0300 Subject: [PATCH 6/8] Remove sudo from pytest command in UI testing workflow --- .github/workflows/ui-testing.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ui-testing.yml b/.github/workflows/ui-testing.yml index a81b9c7d8..04a69e5a8 100644 --- a/.github/workflows/ui-testing.yml +++ b/.github/workflows/ui-testing.yml @@ -38,4 +38,4 @@ jobs: HEADLESS: true WEKAN_URL: http://${{ secrets.WEKAN_URL }}:80 run: | - sudo pytest tests/ -v + pytest tests/ -v From e1d0c05649ebaf016e0c30732a98a1de7527f512 Mon Sep 17 00:00:00 2001 From: omri zaher Date: Fri, 8 Aug 2025 18:54:34 +0300 Subject: [PATCH 7/8] Refactor Chrome and ChromeDriver installation in UI testing workflow --- .github/workflows/ui-testing.yml | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/.github/workflows/ui-testing.yml b/.github/workflows/ui-testing.yml index 04a69e5a8..7c5145a6b 100644 --- a/.github/workflows/ui-testing.yml +++ b/.github/workflows/ui-testing.yml @@ -31,7 +31,18 @@ jobs: - name: Install Chrome and ChromeDriver run: | sudo apt-get update - sudo apt-get install -y google-chrome-stable + sudo apt-get install -y wget unzip + wget -q -O google-chrome.deb https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb + sudo dpkg -i google-chrome.deb || sudo apt-get install -f -y + CHROME_VERSION=$(google-chrome --version | awk '{print $3}') + CHROMEDRIVER_VERSION=$(curl -s "https://chromedriver.storage.googleapis.com/LATEST_RELEASE_$CHROME_VERSION") + wget -q -O chromedriver.zip "https://chromedriver.storage.googleapis.com/$CHROMEDRIVER_VERSION/chromedriver_linux64.zip" + unzip chromedriver.zip + sudo mv chromedriver /usr/local/bin/ + sudo chmod +x /usr/local/bin/chromedriver + env: + CHROME_BIN: /usr/bin/google-chrome + CHROMEDRIVER_BIN: /usr/local/bin/chromedriver - name: Run Selenium tests env: From 4129659d80d6184860a5203bdc55a5beeb1db3b5 Mon Sep 17 00:00:00 2001 From: omri zaher Date: Fri, 8 Aug 2025 19:12:16 +0300 Subject: [PATCH 8/8] Simplify Chrome and ChromeDriver installation in UI testing workflow --- .github/workflows/ui-testing.yml | 13 +------------ 1 file changed, 1 insertion(+), 12 deletions(-) diff --git a/.github/workflows/ui-testing.yml b/.github/workflows/ui-testing.yml index 7c5145a6b..04a69e5a8 100644 --- a/.github/workflows/ui-testing.yml +++ b/.github/workflows/ui-testing.yml @@ -31,18 +31,7 @@ jobs: - name: Install Chrome and ChromeDriver run: | sudo apt-get update - sudo apt-get install -y wget unzip - wget -q -O google-chrome.deb https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb - sudo dpkg -i google-chrome.deb || sudo apt-get install -f -y - CHROME_VERSION=$(google-chrome --version | awk '{print $3}') - CHROMEDRIVER_VERSION=$(curl -s "https://chromedriver.storage.googleapis.com/LATEST_RELEASE_$CHROME_VERSION") - wget -q -O chromedriver.zip "https://chromedriver.storage.googleapis.com/$CHROMEDRIVER_VERSION/chromedriver_linux64.zip" - unzip chromedriver.zip - sudo mv chromedriver /usr/local/bin/ - sudo chmod +x /usr/local/bin/chromedriver - env: - CHROME_BIN: /usr/bin/google-chrome - CHROMEDRIVER_BIN: /usr/local/bin/chromedriver + sudo apt-get install -y google-chrome-stable - name: Run Selenium tests env: