Skip to content

fix(ci): fix broken jobs related to docker-compose (#1815) #2610

fix(ci): fix broken jobs related to docker-compose (#1815)

fix(ci): fix broken jobs related to docker-compose (#1815) #2610

Workflow file for this run

name: Cypress Tests
on:
pull_request:
paths-ignore:
- ".vscode/**"
- "docs/**"
- "env/**"
- "**/*.md"
- ".gitpod.yml"
push:
branches:
- master
paths-ignore:
- ".vscode/**"
- "docs/**"
- "env/**"
- "**/*.md"
- ".gitpod.yml"
concurrency:
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
cancel-in-progress: true
jobs:
component:
runs-on: ubuntu-latest
# container:
# image: cypress/browsers:node16.18.0-chrome107-ff106-edge
# options: --user 1001
strategy:
fail-fast: false
matrix:
node-version: [18.x]
# run copies of the current job in parallel
containers: [1]
browsers: [electron]
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v4
with:
node-version: ${{ matrix.node-version }}
check-latest: true
cache: "yarn"
cache-dependency-path: "./yarn.lock"
- uses: actions/cache@v4
with:
path: node_modules
key: node_modules-${{ runner.os }}-node-${{ matrix.node-version }}-${{ hashFiles('yarn.lock') }}
restore-keys: |
node_modules-${{ runner.os }}-node-${{ matrix.node-version }}-
- uses: actions/cache@v4
with:
path: |
~/.cache/Cypress
key: cypress-${{ runner.os }}-${{ matrix.node-version }}-${{ hashFiles('yarn.lock') }}
- run: corepack enable
- run: yarn --immutable
- run: yarn run cypress install
- run: yarn workspace ott-common build
- name: "Component Tests"
uses: cypress-io/[email protected]
with:
working-directory: client
install: false
component: true
record: true
parallel: false
group: "Component - ${{ matrix.browsers }}"
browser: ${{ matrix.browsers }}
env:
CYPRESS_RECORD_KEY: ${{ secrets.CYPRESS_RECORD_KEY }}
# Recommended: pass the GitHub token lets this action correctly
# determine the unique run id necessary to re-run the checks
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
e2e:
runs-on: ubuntu-latest
# container:
# image: cypress/browsers:node16.18.0-chrome107-ff106-edge
# options: --user 1001
strategy:
fail-fast: false
matrix:
node-version: [18.x]
# run copies of the current job in parallel
# containers: [1, 2]
browsers: [electron]
env:
# this is safe because it's only used for testing
SESSION_SECRET: LERTmi2Jiz6gJHt21AZUWBstezP41P3odxzEsCo1w4zL8XqGyjGdMZ2QPXUenVQQ2fY1xzGBYseB1g9teRHbxF
CI: true
services:
redis:
image: redis
options: >-
--health-cmd "redis-cli ping"
--health-interval 10s
--health-timeout 5s
--health-retries 5
ports:
- 6379:6379
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v4
with:
node-version: ${{ matrix.node-version }}
check-latest: true
cache: "yarn"
cache-dependency-path: "./yarn.lock"
- uses: actions/cache@v4
with:
path: node_modules
key: node_modules-${{ runner.os }}-node-${{ matrix.node-version }}-${{ hashFiles('yarn.lock') }}
restore-keys: |
node_modules-${{ runner.os }}-node-${{ matrix.node-version }}-
- uses: actions/cache@v4
with:
path: |
~/.cache/Cypress
key: cypress-${{ runner.os }}-${{ matrix.node-version }}-${{ hashFiles('yarn.lock') }}
- run: corepack enable
- run: yarn install --immutable
- name: Build client
run: yarn run build
- run: yarn run cypress install
- run: yarn workspace ott-server run sequelize db:migrate
- name: "E2E Tests"
uses: cypress-io/[email protected]
with:
install: false
start: yarn start
wait-on: "http://localhost:8080/api/status"
wait-on-timeout: 120
browser: ${{ matrix.browsers }}
record: true
# parallel: true
group: "E2E - ${{ matrix.browsers }}"
env:
PORT: 8080
REDIS_HOST: 127.0.0.1
REDIS_PORT: 6379
YOUTUBE_API_KEY: ${{ secrets.YOUTUBE_API_KEY }}
CYPRESS_CI: true
CYPRESS_YOUTUBE_API_KEY: ${{ secrets.YOUTUBE_API_KEY }}
CYPRESS_RECORD_KEY: ${{ secrets.CYPRESS_RECORD_KEY }}
# Recommended: pass the GitHub token lets this action correctly
# determine the unique run id necessary to re-run the checks
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
e2e-grafana:
runs-on: ubuntu-latest
strategy:
matrix:
package:
- ott-vis-panel
- ott-vis-datasource
steps:
- uses: actions/checkout@v4
- name: Setup Node.js environment
uses: actions/setup-node@v4
with:
node-version: "20"
cache: "yarn"
cache-dependency-path: "./yarn.lock"
- uses: actions/cache@v4
with:
path: node_modules
key: node_modules-${{ runner.os }}-node-${{ matrix.node-version }}-${{ hashFiles('yarn.lock') }}
restore-keys: |
node_modules-${{ runner.os }}-node-${{ matrix.node-version }}-
- name: Install dependencies
run: yarn install --immutable
- run: yarn workspace ${{ matrix.package }} build
- name: Check for backend
id: check-for-backend
working-directory: packages/${{ matrix.package }}
run: |
if [ -f "Magefile.go" ]
then
echo "has-backend=true" >> $GITHUB_OUTPUT
fi
- name: Setup Go environment
if: steps.check-for-backend.outputs.has-backend == 'true'
uses: actions/setup-go@v3
with:
go-version: "1.21"
- name: Test backend
if: steps.check-for-backend.outputs.has-backend == 'true'
uses: magefile/mage-action@v2
with:
version: latest
args: coverage
- name: Build backend
if: steps.check-for-backend.outputs.has-backend == 'true'
uses: magefile/mage-action@v2
with:
version: latest
args: buildAll
- name: Check for E2E
id: check-for-e2e
working-directory: packages/${{ matrix.package }}
run: |
if [ -d "cypress" ]
then
echo "has-e2e=true" >> $GITHUB_OUTPUT
fi
- name: Start grafana docker
if: steps.check-for-e2e.outputs.has-e2e == 'true'
working-directory: packages/${{ matrix.package }}
run: docker compose up -d
- name: Run e2e tests
if: steps.check-for-e2e.outputs.has-e2e == 'true'
run: yarn workspace ${{ matrix.package }} run e2e
- name: Stop grafana docker
if: steps.check-for-e2e.outputs.has-e2e == 'true'
working-directory: packages/${{ matrix.package }}
run: docker compose down