From 077e66d9412fb8b95a01a30d8591250c012acea1 Mon Sep 17 00:00:00 2001 From: Axel Bocciarelli Date: Thu, 12 Oct 2023 10:52:43 +0200 Subject: [PATCH] Put front-end CI jobs in single workflow file --- .github/workflows/e2e-test.yml | 87 ------------------ .../{format_and_lint_ui.yml => ui.yml} | 88 ++++++++++++++++++- 2 files changed, 87 insertions(+), 88 deletions(-) delete mode 100644 .github/workflows/e2e-test.yml rename .github/workflows/{format_and_lint_ui.yml => ui.yml} (56%) diff --git a/.github/workflows/e2e-test.yml b/.github/workflows/e2e-test.yml deleted file mode 100644 index c3f321eeb..000000000 --- a/.github/workflows/e2e-test.yml +++ /dev/null @@ -1,87 +0,0 @@ -name: E2E Test - -on: [push, pull_request] - -jobs: - e2e: - runs-on: ubuntu-latest - strategy: - max-parallel: 5 - matrix: - python-version: ["3.10"] #, "3.9", "3.10"] - - # Skip `pull_request` runs on local PRs for which `push` runs are already triggered - if: github.event_name == 'push' || github.event.pull_request.head.repo.full_name != github.repository - - # Service containers to run with `container-job` - services: - # Label used to access the service container - redis: - # Docker Hub image - image: redis - # Set health checks to wait until redis has started - options: >- - --health-cmd "redis-cli ping" - --health-interval 10s - --health-timeout 5s - --health-retries 5 - ports: - # Maps port 6379 on service container to the host - - 6379:6379 - - steps: - - uses: actions/checkout@v3 - - - name: Set up Python ${{ matrix.python-version }} - uses: actions/setup-python@v3 - with: - python-version: ${{ matrix.python-version }} - - - name: Add conda to system path - run: | - # $CONDA is an environment variable pointing to the root of the miniconda directory - echo $CONDA/bin >> $GITHUB_PATH - - - name: Install ldap dependencies - run: sudo apt-get -y install libsasl2-dev libldap2-dev libssl-dev - - - name: Install dependencies - run: | - conda install -c conda-forge mamba - mamba env update --file conda-environment.yml --name base - pip install -e . - - - name: Install pnpm - uses: pnpm/action-setup@v2 - with: - version: 8.x - - - name: Cache UI dependencies - uses: actions/cache@v3 - with: - path: | - ~/setup-pnpm/node_modules/.bin/store - ~/.cache/Cypress - key: cache-${{ runner.os }}-${{ hashFiles('pnpm-lock.yaml') }} - restore-keys: | - ${{ runner.os }}- - - - name: Install UI dependencies - run: pnpm --prefix ui install - - - name: Build UI - run: pnpm --prefix ui build - env: - DISABLE_ESLINT_PLUGIN: true - - - name: Start MXCuBE server - run: mxcubeweb-server -r ./test/HardwareObjectsMockup.xml/ --static-folder $(pwd)/ui/build/ -L debug & - - - name: Run Cypress - run: pnpm --prefix ui e2e - - - uses: actions/upload-artifact@v3 - if: failure() - with: - name: cypress - path: ui/cypress/debug diff --git a/.github/workflows/format_and_lint_ui.yml b/.github/workflows/ui.yml similarity index 56% rename from .github/workflows/format_and_lint_ui.yml rename to .github/workflows/ui.yml index 75c69ed03..f0cd85e52 100644 --- a/.github/workflows/format_and_lint_ui.yml +++ b/.github/workflows/ui.yml @@ -1,4 +1,4 @@ -name: Format and lint +name: UI on: [push, pull_request] @@ -116,3 +116,89 @@ jobs: - name: Lint run: pnpm --prefix ui eslint + + e2e: + runs-on: ubuntu-latest + strategy: + max-parallel: 5 + matrix: + python-version: ["3.10"] #, "3.9", "3.10"] + + # Skip `pull_request` runs on local PRs for which `push` runs are already triggered + if: github.event_name == 'push' || github.event.pull_request.head.repo.full_name != github.repository + + # Skip `pull_request` runs on local PRs for which `push` runs are already triggered + if: github.event_name == 'push' || github.event.pull_request.head.repo.full_name != github.repository + + # Service containers to run with `container-job` + services: + # Label used to access the service container + redis: + # Docker Hub image + image: redis + # Set health checks to wait until redis has started + options: >- + --health-cmd "redis-cli ping" + --health-interval 10s + --health-timeout 5s + --health-retries 5 + ports: + # Maps port 6379 on service container to the host + - 6379:6379 + + steps: + - uses: actions/checkout@v3 + + - name: Set up Python ${{ matrix.python-version }} + uses: actions/setup-python@v3 + with: + python-version: ${{ matrix.python-version }} + + - name: Add conda to system path + run: | + # $CONDA is an environment variable pointing to the root of the miniconda directory + echo $CONDA/bin >> $GITHUB_PATH + + - name: Install ldap dependencies + run: sudo apt-get -y install libsasl2-dev libldap2-dev libssl-dev + + - name: Install dependencies + run: | + conda install -c conda-forge mamba + mamba env update --file conda-environment.yml --name base + pip install -e . + + - name: Install pnpm + uses: pnpm/action-setup@v2 + with: + version: 8.x + + - name: Cache UI dependencies + uses: actions/cache@v3 + with: + path: | + ~/setup-pnpm/node_modules/.bin/store + ~/.cache/Cypress + key: cache-${{ runner.os }}-${{ hashFiles('pnpm-lock.yaml') }} + restore-keys: | + ${{ runner.os }}- + + - name: Install UI dependencies + run: pnpm --prefix ui install + + - name: Build UI + run: pnpm --prefix ui build + env: + DISABLE_ESLINT_PLUGIN: true + + - name: Start MXCuBE server + run: mxcubeweb-server -r ./test/HardwareObjectsMockup.xml/ --static-folder $(pwd)/ui/build/ -L debug & + + - name: Run Cypress + run: pnpm --prefix ui e2e + + - uses: actions/upload-artifact@v3 + if: failure() + with: + name: cypress + path: ui/cypress/debug