mirror of
https://github.com/lrnselfreliance/wrolpi.git
synced 2026-10-25 18:40:06 -04:00
Storing video settings in session storage to help user start downloads consistently. Applying channel tag name to new channels when download videos or channels. Initializing map tiles when importing and resetting map.
218 lines
6.8 KiB
YAML
218 lines
6.8 KiB
YAML
# Use the latest 2.1 version of CircleCI pipeline process engine.
|
|
# See: https://circleci.com/docs/2.0/configuration-reference
|
|
version: 2.1
|
|
|
|
# Define a job to be invoked later in a workflow.
|
|
# See: https://circleci.com/docs/2.0/configuration-reference/#jobs
|
|
jobs:
|
|
api-tests-3-11:
|
|
docker:
|
|
- image: cimg/python:3.11
|
|
- image: cimg/postgres:15.6
|
|
environment:
|
|
POSTGRES_USER: postgres
|
|
POSTGRES_DB: wrolpi
|
|
POSTGRES_PASSWORD: "wrolpi"
|
|
resource_class: medium
|
|
steps:
|
|
- checkout
|
|
- run: sudo apt-get update
|
|
- run: sudo apt-get install -y ffmpeg catdoc
|
|
- restore_cache:
|
|
key: deps-3.11-{{ checksum "requirements.txt" }}-4
|
|
- run:
|
|
name: Install Requirements
|
|
command: |
|
|
python3 -m venv venv
|
|
. venv/bin/activate
|
|
pip install -r requirements.txt
|
|
- save_cache:
|
|
key: deps-3.11-{{ checksum "requirements.txt" }}-4
|
|
paths:
|
|
- "venv"
|
|
- run:
|
|
command: './venv/bin/pytest -svv --junitxml=test-results.xml'
|
|
- store_test_results:
|
|
path: test-results.xml
|
|
api-alembic-migrations:
|
|
docker:
|
|
- image: cimg/python:3.11
|
|
- image: cimg/postgres:15.6
|
|
environment:
|
|
POSTGRES_USER: wrolpi
|
|
POSTGRES_DB: wrolpi
|
|
POSTGRES_PASSWORD: "wrolpi"
|
|
resource_class: medium
|
|
steps:
|
|
- checkout
|
|
- restore_cache:
|
|
key: deps-3.11-{{ checksum "requirements.txt" }}-4
|
|
- run:
|
|
name: Install Requirements
|
|
command: |
|
|
python3 -m venv venv
|
|
. venv/bin/activate
|
|
pip install -r requirements.txt
|
|
- save_cache:
|
|
key: deps-3.11-{{ checksum "requirements.txt" }}-4
|
|
paths:
|
|
- "venv"
|
|
- run:
|
|
command: ./venv/bin/python ./main.py db upgrade
|
|
api-tests-3-12:
|
|
docker:
|
|
- image: cimg/python:3.12
|
|
- image: cimg/postgres:15.6
|
|
environment:
|
|
POSTGRES_USER: postgres
|
|
POSTGRES_DB: wrolpi
|
|
POSTGRES_PASSWORD: "wrolpi"
|
|
resource_class: medium
|
|
steps:
|
|
- checkout
|
|
- run: sudo apt-get update
|
|
- run: sudo apt-get install -y ffmpeg catdoc
|
|
- restore_cache:
|
|
key: deps-3.12-{{ checksum "requirements.txt" }}-4
|
|
- run:
|
|
name: Install Requirements
|
|
command: |
|
|
python3 -m venv venv
|
|
. venv/bin/activate
|
|
pip install -r requirements.txt
|
|
- save_cache:
|
|
key: deps-3.12-{{ checksum "requirements.txt" }}-4
|
|
paths:
|
|
- "venv"
|
|
- run:
|
|
command: './venv/bin/pytest -svv'
|
|
sanic-api-start:
|
|
docker:
|
|
- image: cimg/python:3.11
|
|
steps:
|
|
- checkout
|
|
- restore_cache:
|
|
key: deps-3.11-{{ checksum "requirements.txt" }}-4
|
|
- run:
|
|
name: Install dependencies
|
|
command: |
|
|
python -m venv venv
|
|
. venv/bin/activate
|
|
pip install -r requirements.txt
|
|
sudo mkdir -p /media/wrolpi
|
|
- run:
|
|
name: Start Sanic API
|
|
command: |
|
|
. venv/bin/activate
|
|
sanic main:api_app -H 0.0.0.0 -p 8081
|
|
background: true
|
|
- run:
|
|
name: Test Sanic API
|
|
command: |
|
|
sleep 20
|
|
curl http://0.0.0.0:8081/api/echo
|
|
- run:
|
|
name: Stop Sanic API
|
|
command: pkill -f sanic
|
|
react-app-start:
|
|
docker:
|
|
- image: cimg/node:20.13
|
|
resource_class: large
|
|
steps:
|
|
- checkout
|
|
- restore_cache:
|
|
key: app-{{ checksum "app/package-lock.json" }}
|
|
- run: cd app && npm install --legacy-peer-deps
|
|
- save_cache:
|
|
key: app-{{ checksum "app/package-lock.json" }}
|
|
paths:
|
|
- ./app/node_modules
|
|
- run:
|
|
name: Build React App
|
|
command: cd app && DISABLE_ESLINT_PLUGIN=true npm run build
|
|
- run:
|
|
name: Start React App
|
|
command: cd app && DISABLE_ESLINT_PLUGIN=true npm run start
|
|
background: true
|
|
- run:
|
|
name: Test React App
|
|
command: |
|
|
sleep 20
|
|
curl http://0.0.0.0:3000/manifest.json
|
|
- run:
|
|
name: Stop React App
|
|
command: pkill -f npm
|
|
react-app-cypress-components-chrome:
|
|
docker:
|
|
- image: cypress/browsers:node-20.18.0-chrome-130.0.6723.69-1-ff-131.0.3-edge-130.0.2849.52-1
|
|
resource_class: small
|
|
steps:
|
|
- checkout
|
|
- restore_cache:
|
|
key: app-{{ checksum "app/package-lock.json" }}
|
|
- run: cd app && npm install --legacy-peer-deps
|
|
- run:
|
|
name: Run Cypress component tests
|
|
command: |
|
|
cd app
|
|
npx cypress run --component --browser chrome --reporter junit --reporter-options "mochaFile=test-results.xml"
|
|
- store_artifacts:
|
|
path: app/cypress/videos
|
|
- store_artifacts:
|
|
path: app/cypress/screenshots
|
|
- store_test_results:
|
|
path: app/test-results.xml
|
|
react-app-cypress-components-firefox:
|
|
docker:
|
|
- image: cypress/browsers:node-20.18.0-chrome-130.0.6723.69-1-ff-131.0.3-edge-130.0.2849.52-1
|
|
resource_class: small
|
|
steps:
|
|
- checkout
|
|
- restore_cache:
|
|
key: app-{{ checksum "app/package-lock.json" }}
|
|
- run: cd app && npm install --legacy-peer-deps
|
|
- run:
|
|
name: Run Cypress component tests
|
|
command: |
|
|
cd app
|
|
npx cypress run --component --browser firefox --reporter junit --reporter-options "mochaFile=test-results.xml"
|
|
- store_artifacts:
|
|
path: app/cypress/videos
|
|
- store_artifacts:
|
|
path: app/cypress/screenshots
|
|
- store_test_results:
|
|
path: app/test-results.xml
|
|
react-app-cypress-components-edge:
|
|
docker:
|
|
- image: cypress/browsers:node-20.18.0-chrome-130.0.6723.69-1-ff-131.0.3-edge-130.0.2849.52-1
|
|
resource_class: small
|
|
steps:
|
|
- checkout
|
|
- restore_cache:
|
|
key: app-{{ checksum "app/package-lock.json" }}
|
|
- run: cd app && npm install --legacy-peer-deps
|
|
- run:
|
|
name: Run Cypress component tests
|
|
command: |
|
|
cd app
|
|
npx cypress run --component --browser edge --reporter junit --reporter-options "mochaFile=test-results.xml"
|
|
- store_artifacts:
|
|
path: app/cypress/videos
|
|
- store_artifacts:
|
|
path: app/cypress/screenshots
|
|
- store_test_results:
|
|
path: app/test-results.xml
|
|
|
|
workflows:
|
|
wrolpi-api-tests:
|
|
jobs:
|
|
- sanic-api-start
|
|
- api-tests-3-11
|
|
- api-alembic-migrations
|
|
# - api-tests-3-12 Sanic does not yet support 3.12.
|
|
wrolpi-app-test:
|
|
jobs:
|
|
- react-app-start
|
|
- react-app-cypress-components-chrome
|
|
- react-app-cypress-components-firefox
|
|
- react-app-cypress-components-edge
|