Skip to content

web: Add Extendable to RecentFile view #3922

web: Add Extendable to RecentFile view

web: Add Extendable to RecentFile view #3922

Workflow file for this run

name: "Build and test mwdb-core"
on:
push:
branches:
- master
- v[23456789].*.*
pull_request:
branches:
- master
- v[23456789].*.*
jobs:
lint_core:
runs-on: ubuntu-latest
steps:
- uses: astral-sh/ruff-action@v3
- name: Check out repository
uses: actions/checkout@v4
- run: ruff check
- run: ruff format --check --diff
lint_web:
name: Lint mwdb-core web sources
runs-on: ubuntu-latest
steps:
- name: Check out repository
uses: actions/checkout@v4
- name: Install dependencies
working-directory: mwdb/web
run: npm install
- name: Check if code was prettified
working-directory: mwdb/web
run: npx prettier --check src
- name: Check types
working-directory: mwdb/web
run: npx tsc
build_core:
needs: [lint_core]
name: Build mwdb-core core image
runs-on: ubuntu-latest
steps:
- name: Check out repository
uses: actions/checkout@v4
- name: Set up QEMU
uses: docker/setup-qemu-action@v3
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
- name: Build and push mwdb-core image
uses: docker/build-push-action@v6
with:
file: ./deploy/docker/Dockerfile
tags: |
certpl/mwdb:${{ github.sha }}
certpl/mwdb:master
cache-from: |
type=registry,ref=certpl/mwdb:buildcache
outputs: type=docker,dest=./mwdb-image
- name: Upload mwdb-core image
uses: actions/upload-artifact@v4
with:
name: mwdb-image
path: mwdb-image
build_dist:
needs: [lint_core, lint_web]
name: Build mwdb-core PyPi distribution package
runs-on: ubuntu-latest
steps:
- name: Check out repository
uses: actions/checkout@v4
- name: Use Node.js 20.x
uses: actions/setup-node@v4
with:
node-version: '20'
- name: Install uv
uses: astral-sh/setup-uv@v7
- name: Build web bundle
working-directory: mwdb/web
run: |
npm install
npm run build
- name: Build package
run: |
uv build
- uses: actions/upload-artifact@v4
with:
name: mwdb-core-dist
path: ./dist/*
build_frontend:
needs: [lint_web]
name: Build mwdb-core web image
runs-on: ubuntu-latest
steps:
- name: Check out repository
uses: actions/checkout@v4
- name: Set up QEMU
uses: docker/setup-qemu-action@v3
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
- name: Build and push mwdb-core web image
uses: docker/build-push-action@v6
with:
file: ./deploy/docker/Dockerfile-web
tags: |
certpl/mwdb-web:${{ github.sha }}
certpl/mwdb-web:master
cache-from: |
type=registry,ref=certpl/mwdb-web:buildcache
outputs: type=docker,dest=./mwdb-web-image
- name: Upload mwdb-core web image
uses: actions/upload-artifact@v4
with:
name: mwdb-web-image
path: mwdb-web-image
build_backend_e2e:
name: Build backend e2e test image
runs-on: ubuntu-latest
steps:
- name: Check out repository
uses: actions/checkout@v4
- name: Set up QEMU
uses: docker/setup-qemu-action@v3
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
- name: Build and push mwdb-tests image
uses: docker/build-push-action@v6
with:
file: ./tests/backend/Dockerfile
context: .
tags: |
certpl/mwdb-tests:${{ github.sha }}
cache-from: |
type=registry,ref=certpl/mwdb-tests:buildcache
outputs: type=docker,dest=./mwdb-tests-image
- name: Upload test image
uses: actions/upload-artifact@v4
with:
name: mwdb-tests-image
path: mwdb-tests-image
build_frontend_e2e:
name: Build frontend e2e test image
runs-on: ubuntu-latest
steps:
- name: Check out repository
uses: actions/checkout@v4
- name: Set up QEMU
uses: docker/setup-qemu-action@v3
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
- name: Build and push mwdb-web-tests image
uses: docker/build-push-action@v6
with:
file: ./tests/frontend/Dockerfile
context: tests/frontend
tags: |
certpl/mwdb-web-tests:${{ github.sha }}
cache-from: |
type=registry,ref=certpl/mwdb-web-tests:buildcache
outputs: type=docker,dest=./mwdb-web-tests-image
- name: Upload test image
uses: actions/upload-artifact@v4
with:
name: mwdb-web-tests-image
path: mwdb-web-tests-image
build_frontend_unit_test:
name: Build frontend unit test image
runs-on: ubuntu-latest
steps:
- name: Check out repository
uses: actions/checkout@v4
- name: Set up QEMU
uses: docker/setup-qemu-action@v3
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
- name: Build and push mwdb-web-unit-tests image
uses: docker/build-push-action@v6
with:
file: ./deploy/docker/Dockerfile-web-unit-test
tags: |
certpl/mwdb-web-unit-tests:${{ github.sha }}
cache-from: |
type=registry,ref=certpl/mwdb-web-unit-tests:buildcache
outputs: type=docker,dest=./mwdb-web-unit-tests-image
- name: Upload unit test image
uses: actions/upload-artifact@v4
with:
name: mwdb-web-unit-tests-image
path: mwdb-web-unit-tests-image
test_backend_e2e:
needs: [build_core, build_frontend, build_backend_e2e]
name: Perform backend e2e tests
strategy:
fail-fast: false
matrix:
with_args:
- "--with karton"
- "--with karton --with s3"
runs-on: ubuntu-latest
steps:
- name: Check out repository
uses: actions/checkout@v4
- name: Download all artifacts
uses: actions/download-artifact@v4
with:
pattern: mwdb-*
- name: Import images
run: |
docker load --input ./mwdb-image/mwdb-image
docker load --input ./mwdb-web-image/mwdb-web-image
docker load --input ./mwdb-tests-image/mwdb-tests-image
docker tag certpl/mwdb:${{ github.sha }} mwdb-core-mwdb:latest
docker tag certpl/mwdb-web:${{ github.sha }} mwdb-core-mwdb-web:latest
docker tag certpl/mwdb-tests:${{ github.sha }} mwdb-core-mwdb-tests:latest
- name: Setup configuration
run: |
chmod +x gen_vars.sh
./gen_vars.sh test
- name: Perform tests
run: |
./compose.sh --with e2e ${{ matrix.with_args }} up --no-build -d mwdb-tests
./compose.sh --with e2e ${{ matrix.with_args }} logs -f -t mwdb-tests
([ $(docker wait mwdb_core_e2e_tests) == 0 ])
- name: Job failed - storing application logs
if: ${{ failure() }}
run: |
./compose.sh --with e2e ${{ matrix.with_args }} logs --no-color -t mwdb > ./mwdb-e2e-logs
- name: Job failed - upload application logs
if: ${{ failure() }}
uses: actions/upload-artifact@v4
with:
name: mwdb-e2e-logs
path: mwdb-e2e-logs
test_frontend_e2e:
needs: [build_core, build_frontend, build_frontend_e2e]
name: Perform frontend e2e tests
runs-on: ubuntu-latest
steps:
- name: Check out repository
uses: actions/checkout@v4
- name: Download all artifacts
uses: actions/download-artifact@v4
with:
pattern: mwdb-*
- name: Import images
run: |
docker load --input ./mwdb-image/mwdb-image
docker load --input ./mwdb-web-image/mwdb-web-image
docker load --input ./mwdb-web-tests-image/mwdb-web-tests-image
docker tag certpl/mwdb:${{ github.sha }} mwdb-core-mwdb:latest
docker tag certpl/mwdb-web:${{ github.sha }} mwdb-core-mwdb-web:latest
docker tag certpl/mwdb-web-tests:${{ github.sha }} mwdb-core-mwdb-web-tests:latest
- name: Setup configuration
run: |
chmod +x gen_vars.sh
./gen_vars.sh test
- name: Perform tests
run: |
./compose.sh --with karton --with e2e up --no-build -d web-tests
./compose.sh --with karton --with e2e logs -f -t web-tests
([ $(docker wait mwdb_core_e2e_web_tests) == 0 ])
- name: Job failed - storing videos from e2e tests
if: ${{ failure() }}
run: |
docker cp mwdb_core_e2e_web_tests:/app/cypress/videos ./artifacts
- name: Job failed - upload application logs
if: ${{ failure() }}
uses: actions/upload-artifact@v4
with:
name: mwdb-e2e-web-videos
path: artifacts
test_frontend_unit:
needs: [ build_frontend_unit_test ]
name: Perform frontend unit tests
runs-on: ubuntu-latest
steps:
- name: Check out repository
uses: actions/checkout@v4
- name: Download all artifacts
uses: actions/download-artifact@v4
with:
pattern: mwdb-*
- name: Import images
run: |
docker load --input ./mwdb-web-unit-tests-image/mwdb-web-unit-tests-image
docker tag certpl/mwdb-web-unit-tests:${{ github.sha }} certpl/mwdb-web-unit-tests:latest
- name: Setup configuration
run: |
chmod +x gen_vars.sh
./gen_vars.sh test
- name: Perform tests
run: |
docker compose -f compose/compose.web-unit-tests.yml up --no-build -d
docker compose -f compose/compose.web-unit-tests.yml logs -f -t
push_images:
needs: [test_backend_e2e, test_frontend_e2e, test_frontend_unit]
name: Push images on Docker Hub
runs-on: ubuntu-latest
if: ${{ github.event_name == 'push' }}
steps:
- name: Check out repository
uses: actions/checkout@v4
- name: Set up QEMU
uses: docker/setup-qemu-action@v3
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
- name: Login to Docker Hub
uses: docker/login-action@v3
with:
username: ${{ secrets.DOCKER_USERNAME }}
password: ${{ secrets.DOCKER_PASSWORD }}
- name: Build and push mwdb-core image
uses: docker/build-push-action@v6
with:
file: ./deploy/docker/Dockerfile
tags: |
certpl/mwdb:${{ github.sha }}
certpl/mwdb:master
cache-from: |
type=registry,ref=certpl/mwdb:buildcache
cache-to: |
type=registry,ref=certpl/mwdb:buildcache,mode=max
push: true
- name: Build and push mwdb-core web-source image
uses: docker/build-push-action@v6
with:
file: ./deploy/docker/Dockerfile-web
target: build
tags: |
certpl/mwdb-web-source:${{ github.sha }}
certpl/mwdb-web-source:master
cache-from: |
type=registry,ref=certpl/mwdb-web-source:buildcache
cache-to: |
type=registry,ref=certpl/mwdb-web-source:buildcache,mode=max
push: true
- name: Build and push mwdb-core web image
uses: docker/build-push-action@v6
with:
file: ./deploy/docker/Dockerfile-web
tags: |
certpl/mwdb-web:${{ github.sha }}
certpl/mwdb-web:master
cache-from: |
type=registry,ref=certpl/mwdb-web:buildcache
cache-to: |
type=registry,ref=certpl/mwdb-web:buildcache,mode=max
push: true
push_test_images:
needs: [test_backend_e2e, test_frontend_e2e, test_frontend_unit]
name: Push test images on Docker Hub
runs-on: ubuntu-latest
if: ${{ github.event_name == 'push' }}
steps:
- name: Check out repository
uses: actions/checkout@v4
- name: Set up QEMU
uses: docker/setup-qemu-action@v3
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
- name: Login to Docker Hub
uses: docker/login-action@v3
with:
username: ${{ secrets.DOCKER_USERNAME }}
password: ${{ secrets.DOCKER_PASSWORD }}
- name: Build and push mwdb-tests image
uses: docker/build-push-action@v6
with:
file: ./tests/backend/Dockerfile
context: .
tags: |
certpl/mwdb-tests:${{ github.sha }}
certpl/mwdb-tests:master
cache-from: |
type=registry,ref=certpl/mwdb-tests:buildcache
cache-to: |
type=registry,ref=certpl/mwdb-tests:buildcache,mode=max
push: true
- name: Build and push mwdb-web-tests image
uses: docker/build-push-action@v6
with:
file: ./tests/frontend/Dockerfile
context: tests/frontend
tags: |
certpl/mwdb-web-tests:${{ github.sha }}
certpl/mwdb-web-tests:master
cache-from: |
type=registry,ref=certpl/mwdb-web-tests:buildcache
cache-to: |
type=registry,ref=certpl/mwdb-web-tests:buildcache,mode=max
push: true
- name: Build and push mwdb-web-unit-tests image
uses: docker/build-push-action@v6
with:
file: ./deploy/docker/Dockerfile-web-unit-test
tags: |
certpl/mwdb-web-unit-tests:${{ github.sha }}
certpl/mwdb-web-unit-tests:master
cache-from: |
type=registry,ref=certpl/mwdb-web-unit-tests:buildcache
cache-to: |
type=registry,ref=certpl/mwdb-web-unit-tests:buildcache,mode=max
push: true