v3: Drop some of the deprecated features #3311
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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: CERT-Polska/lint-python-action@v2 | |
with: | |
install-requirements: false | |
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_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: tests/backend | |
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 | |
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 certpl/mwdb:latest | |
docker tag certpl/mwdb-web:$GITHUB_SHA certpl/mwdb-web:latest | |
docker tag certpl/mwdb-tests:$GITHUB_SHA certpl/mwdb-tests:latest | |
- name: Setup configuration | |
run: | | |
chmod +x gen_vars.sh | |
./gen_vars.sh test | |
- name: Perform tests | |
run: | | |
docker compose -f docker-compose-e2e.yml up -d mwdb-tests | |
docker compose -f docker-compose-e2e.yml logs -f -t mwdb-tests | |
([ $(docker wait mwdb_core_e2e_tests) == 0 ]) | |
- name: Job failed - storing application logs | |
if: ${{ failure() }} | |
run: | | |
docker compose -f docker-compose-e2e.yml 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 certpl/mwdb:latest | |
docker tag certpl/mwdb-web:$GITHUB_SHA certpl/mwdb-web:latest | |
docker tag certpl/mwdb-web-tests:$GITHUB_SHA certpl/mwdb-web-tests:latest | |
- name: Setup configuration | |
run: | | |
chmod +x gen_vars.sh | |
./gen_vars.sh test | |
- name: Perform tests | |
run: | | |
docker compose -f docker-compose-e2e.yml up -d web-tests | |
docker compose -f docker-compose-e2e.yml 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 docker-compose-unit-test.yml up -d | |
docker compose -f docker-compose-unit-test.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: tests/backend | |
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 |