From 6effdc7e3e46c8321aa26a5bb3dfb7100f8cb537 Mon Sep 17 00:00:00 2001 From: Audric Ackermann Date: Fri, 20 Sep 2024 14:04:08 +1000 Subject: [PATCH] chore: add basic CI with workflow dispatch --- .github/workflows/desktop-regression.yml | 125 ++++++++++++++++++++++- 1 file changed, 124 insertions(+), 1 deletion(-) diff --git a/.github/workflows/desktop-regression.yml b/.github/workflows/desktop-regression.yml index 14febda..c104f83 100644 --- a/.github/workflows/desktop-regression.yml +++ b/.github/workflows/desktop-regression.yml @@ -1,4 +1,4 @@ -name: Run android regression tests +name: Run desktop regression tests on: workflow_dispatch: inputs: @@ -12,10 +12,133 @@ on: - bilb/session-playwright default: oxen-io/session-playwright + BRANCH_TO_CHECKOUT_PW: + description: 'branch to checkout on session-playwright' + required: true + type: string + default: main + + SESSION_DESKTOP_REPO: + description: 'Session desktop repo to checkout' + required: true + type: choice + options: + - oxen-io/session-desktop + - bilb/session-desktop + - yougotwill/session-desktop + default: oxen-io/session-desktop + + BRANCH_TO_CHECKOUT_SESSION: + description: 'Branch to checkout on session-desktop' + required: true + type: string + default: unstable + + PLAYWRIGHT_REPEAT_COUNT: + description: 'Repeats of each tests (0 to only run each once)' + required: true + type: number + default: 0 + + PLAYWRIGHT_RETRIES_COUNT: + description: 'Retries of each tests (0 to only run each once, 1 to run another attempt)' + required: true + type: number + default: 0 + + PLAYWRIGHT_WORKER_COUNT: + description: 'Playwright workers to start' + required: true + type: number + default: 4 + +concurrency: + group: ${{ github.workflow }} + cancel-in-progress: true + jobs: desktop-regression: name: Desktop Regression Tests runs-on: [self-hosted, linux, x64, qa-desktop] + container: + image: ubuntu:latest + + env: + SESSION_DESKTOP_ROOT: '$GITHUB_WORKSPACE/desktop' + PLAYWRIGHT_CUSTOM_REPORTER: 1 + PLAYWRIGHT_REPEAT_COUNT: ${{ github.event.inputs.PLAYWRIGHT_REPEAT_COUNT }} + PLAYWRIGHT_RETRIES_COUNT: ${{ github.event.inputs.PLAYWRIGHT_RETRIES_COUNT }} + PLAYWRIGHT_WORKER_COUNT: ${{ github.event.inputs.PLAYWRIGHT_WORKER_COUNT }} steps: - uses: actions/checkout@v4 + - name: Runner Details + run: | + echo "SESSION_DESKTOP_ROOT ${{ env.SESSION_DESKTOP_ROOT }}" + echo "PLAYWRIGHT_REPO ${{ github.event.inputs.PLAYWRIGHT_REPO }}" + echo "BRANCH_TO_CHECKOUT_PW ${{ github.event.inputs.BRANCH_TO_CHECKOUT_PW }}" + echo "SESSION_DESKTOP_REPO ${{ github.event.inputs.SESSION_DESKTOP_REPO }}" + echo "BRANCH_TO_CHECKOUT_SESSION ${{ github.event.inputs.BRANCH_TO_CHECKOUT_SESSION }}" + + - uses: actions/checkout@v4 + name: 'Checkout playwright' + with: + repository: ${{ github.event.inputs.PLAYWRIGHT_REPO }} + ref: ${{ github.event.inputs.BRANCH_TO_CHECKOUT_PW }} + path: 'playwright' + + - name: Install system deps + run: apt update && apt install -y git g++ build-essential cmake + + - uses: actions/checkout@v4 + name: 'Checkout Session desktop' + with: + repository: ${{ github.event.inputs.SESSION_DESKTOP_REPO }} + ref: ${{ github.event.inputs.BRANCH_TO_CHECKOUT_SESSION }} + path: 'desktop' + + - name: Install yarn + run: | + npm install -g yarn + + - name: List desktop folder + run: | + pwd + ls -la desktop + + - name: List playwright folder + run: | + pwd + ls -la playwright + + - name: Build desktop + run: | + cd $GITHUB_WORKSPACE/desktop + yarn install --frozen-lockfile + + - name: Install playwright dependencies + run: | + cd $GITHUB_WORKSPACE/playwright + yarn install --frozen-lockfile + + - name: Build the Desktop tests + run: | + cd $GITHUB_WORKSPACE/desktop + yarn build-everything + + - name: Build the Desktop tests + run: | + cd $GITHUB_WORKSPACE/playwright + yarn tsc + + - name: Run the Android tests + run: | + cd $GITHUB_WORKSPACE/playwright + yarn test -g "Create User" + + - name: Kill all running electron app + if: always() + continue-on-error: true # just so we don't fail + shell: bash + run: | + killall electron;