Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Feat: Add docker #16

Merged
merged 22 commits into from
Jun 4, 2024
Merged

Feat: Add docker #16

merged 22 commits into from
Jun 4, 2024

Conversation

Ramimashkouk
Copy link
Member

No description provided.

backend/Dockerfile Show resolved Hide resolved
backend/Dockerfile Show resolved Hide resolved
compose.yaml Show resolved Hide resolved
@Ramimashkouk Ramimashkouk merged commit 551d427 into dev Jun 4, 2024
0 of 3 checks passed
@Ramimashkouk Ramimashkouk deleted the feat/add_docker branch June 4, 2024 07:59
Ramimashkouk added a commit that referenced this pull request Jun 6, 2024
* MAJOR CHANGE: Restructure repository (#13)

* feat: Add endpoints (#14)

* feat: Add db (#15)

* feat: Add docker (#16)

* feat: Add logging system (#17)

* refactor: Merge front and support it in docker (#18)

* Feat: Provide endpoint for logs and cli command `build_scenario` (#19)

* Chore: Update storage logic (#20)

* Merge frontend (#21)

* Feat: Support versioning (#22)

* chore: Sync with frontend new json format (#23)

* ci: Add workflows (#24)

* Test: Add tests (#25)

* feat: Support indexed search (#26)

* MAJOR CHANGE: New front (#30)

* test: Test new front (#43)

* test: Add end to end test (#32)

* feat: Add makefile (#33)

* test: Set e2e aside (#44)

* Prepare for version 0.1.0-beta.0 (#38)

* doc: Update README

---------

Co-authored-by: MXerFix <[email protected]>
Co-authored-by: Denis Kuznetsov <[email protected]>
Ramimashkouk added a commit that referenced this pull request Jun 6, 2024
* backend preparation

* change readme

* add ci

* fix ci

* fix ci

* fix ci

* fix ci

* fix ci

* fix ci

* fix ci

* fix ci

* fix ci

* fix ci

* fix ci

* fix ci

* fix ci

* fix ci

* new endpoints

* tests

* fix ci

* feat/backend: upd TODOs

* feat/backend: upd TODOs

* frontend base unstable

* return main page for frontend

* remove old endpoints

* add config

* update 0.0.43a

* ooops gitignore

* Delete .DS_Store

* Delete .DS_Store

* Delete static directory

* beta build scripts & chat

* readme upd

* add assets path

* add logs

* add websocket

* add flush

* new chat close

* added save functions button

* updated saving of functions to the storage

* update editor

* dev: add db using by ORM draft

* added first line theming

* change paths log to run (#3)

* fix_upd/makefile: fix gitignore & upd makefile (#4)

* context menu refactoring

* add work with subprocess

* bug fix terminate process

* process, websocet, status

* build stubs

* Fix Makefile (#9)

* fix things in makefile

* chore: delete ports from makefile

* refactor: make commands in order

* dev: upd makefile

* MAJOR CHANGE: Refactor repository

* Make bot/run/* and bot/build/* endpoints work
* Add run/connect endpoint to open websocket

* feat: Add CLI `init` command

* fix: Add deps to .toml file

* chore: Divide processes into build and run ones

* feat: Add `/bot/builds` endpoint

* chore: Add CORS mechanism

* refactor: Modify Preset body

* feat: Return info with `/bot/builds` & `/bot/runs`

* chore: Update  possible statuses of a process

* fix: Handle error to return `Failed` properly

* chore: Fix "recording each log twice"

* refactor: Unify executing subprocess.run

* fix: Give up on bot logging to let the IO flow

* feat: Add DB

* Add build_id to `/bot/run/start/{build_id}` endpoint
* Save the run process  info in runs.yaml
* Save the run process info into the correspoinding build in BUILDS_PATH

* chore: Define literal types to preset end_status

* refactor: refactor ProcessManager

* Create BuildManager and RunManager

* feat: Update DB after each process start and stop

* Correct builds/runs full and min info
* Incrementally Assign numbers to build_id

* fix: Check process statuses periodically

* feat: Add `/flows` endpoint

* fix: Check run_id in build's runs before saving

* feat: Introduce Docker implementation for backend

* chore: Fix the used dff version

* feat: Provide logging system

* fix: Avoid logging out of proj dir

* Push poetry.lock
* create general log file if it doesn't exist
* Avoid creating logger while initating a project (init command)

* feat: Serve static files

* init new front

* fix: Change `/` to `/home` so that front see it

* feat: Add Dockerfile putting front&end together

* Merge branch 'MAJOR_CHANGE/new_structure' into MAJOR_CHANGE/new_front

* nodes layout ui

* fix: Integrate front in back then build the wheel

* chore: Delete old frontend file

* redirect /app

* fix: Fix static files routing

* fix: Cancel pending tasks of websocket properly

* feat: Add `build_scenario` cli command

* chore: Enhance retrieval from `/builds` & `/runs`

* Get full info from both endpoints
* Allow id to be optional in the endpoints

* feat: Add pagination to `/builds` and `/runs`

* feat: Add endpoint to get logs

* fix: Raise error when process not found

* feat: Connect `build_scenario` command to ui

* refactor: Move processes and mangers to services

* chore: Update storage logic

* Move to `db`
* Make io file operations asynchronous
* Add files locks

* Merge branch 'MAJOR_CHANGE/new_front' into MAJOR_CHANGE/new_structure

* refactor: Rename pid to run_id/build_id

* fix: Handle process expected errors

* feat: Include versioning in endpoint paths

* chore: Access db asynchronously in `build_scenario`

* feat: Add endpoints (#14)

* MAJOR CHANGE: Refactor repository

* Make bot/run/* and bot/build/* endpoints work
* Add run/connect endpoint to open websocket

* feat: Add CLI `init` command

* fix: Add deps to .toml file

* chore: Divide processes into build and run ones

* feat: Add `/bot/builds` endpoint

* chore: Add CORS mechanism

* refactor: Modify Preset body

* feat: Return info with `/bot/builds` & `/bot/runs`

* chore: Update  possible statuses of a process

* fix: Handle error to return `Failed` properly

* chore: Fix "recording each log twice"

* refactor: Unify executing subprocess.run

* fix: Give up on bot logging to let the IO flow

* feat: Add db (#15)

* feat: Add CLI `init` command

* fix: Add deps to .toml file

* chore: Divide processes into build and run ones

* feat: Add `/bot/builds` endpoint

* chore: Add CORS mechanism

* refactor: Modify Preset body

* feat: Return info with `/bot/builds` & `/bot/runs`

* chore: Update  possible statuses of a process

* fix: Handle error to return `Failed` properly

* chore: Fix "recording each log twice"

* refactor: Unify executing subprocess.run

* fix: Give up on bot logging to let the IO flow

* feat: Add DB

* Add build_id to `/bot/run/start/{build_id}` endpoint
* Save the run process  info in runs.yaml
* Save the run process info into the correspoinding build in BUILDS_PATH

* chore: Define literal types to preset end_status

* refactor: refactor ProcessManager

* Create BuildManager and RunManager

* feat: Update DB after each process start and stop

* Correct builds/runs full and min info
* Incrementally Assign numbers to build_id

* fix: Check process statuses periodically

* feat: Add `/flows` endpoint

* fix: Check run_id in build's runs before saving

* feat: Add docker (#16)

* feat: Add CLI `init` command

* fix: Add deps to .toml file

* chore: Divide processes into build and run ones

* feat: Add `/bot/builds` endpoint

* chore: Add CORS mechanism

* refactor: Modify Preset body

* feat: Return info with `/bot/builds` & `/bot/runs`

* chore: Update  possible statuses of a process

* fix: Handle error to return `Failed` properly

* chore: Fix "recording each log twice"

* refactor: Unify executing subprocess.run

* fix: Give up on bot logging to let the IO flow

* feat: Add DB

* Add build_id to `/bot/run/start/{build_id}` endpoint
* Save the run process  info in runs.yaml
* Save the run process info into the correspoinding build in BUILDS_PATH

* chore: Define literal types to preset end_status

* refactor: refactor ProcessManager

* Create BuildManager and RunManager

* feat: Update DB after each process start and stop

* Correct builds/runs full and min info
* Incrementally Assign numbers to build_id

* fix: Check process statuses periodically

* feat: Add `/flows` endpoint

* fix: Check run_id in build's runs before saving

* feat: Introduce Docker implementation for backend

* chore: Fix the used dff version

* feat: Add logging system (#17)

* feat: Add CLI `init` command

* fix: Add deps to .toml file

* chore: Divide processes into build and run ones

* feat: Add `/bot/builds` endpoint

* chore: Add CORS mechanism

* refactor: Modify Preset body

* feat: Return info with `/bot/builds` & `/bot/runs`

* chore: Update  possible statuses of a process

* fix: Handle error to return `Failed` properly

* chore: Fix "recording each log twice"

* refactor: Unify executing subprocess.run

* fix: Give up on bot logging to let the IO flow

* feat: Add DB

* Add build_id to `/bot/run/start/{build_id}` endpoint
* Save the run process  info in runs.yaml
* Save the run process info into the correspoinding build in BUILDS_PATH

* chore: Define literal types to preset end_status

* refactor: refactor ProcessManager

* Create BuildManager and RunManager

* feat: Update DB after each process start and stop

* Correct builds/runs full and min info
* Incrementally Assign numbers to build_id

* fix: Check process statuses periodically

* feat: Add `/flows` endpoint

* fix: Check run_id in build's runs before saving

* feat: Introduce Docker implementation for backend

* chore: Fix the used dff version

* feat: Provide logging system

* fix: Avoid logging out of proj dir

* Push poetry.lock
* create general log file if it doesn't exist
* Avoid creating logger while initating a project (init command)

* refactor: Merge front and support it in docker (#18)

* feat: Serve static files

* init new front

* fix: Change `/` to `/home` so that front see it

* feat: Add Dockerfile putting front&end together

* Merge branch 'MAJOR_CHANGE/new_structure' into MAJOR_CHANGE/new_front

* nodes layout ui

* fix: Integrate front in back then build the wheel

* chore: Delete old frontend file

* redirect /app

* fix: Fix static files routing

* fix: Cancel pending tasks of websocket properly

---------

Co-authored-by: MXerFix <[email protected]>

* Feat: Provide endpoint for logs and cli command `build_scenario` (#19)

* feat: Add `build_scenario` cli command

* chore: Enhance retrieval from `/builds` & `/runs`

* Get full info from both endpoints
* Allow id to be optional in the endpoints

* feat: Add pagination to `/builds` and `/runs`

* feat: Add endpoint to get logs

* fix: Raise error when process not found

* feat: Connect `build_scenario` command to ui

* refactor: Move processes and mangers to services

---------

Co-authored-by: MXerFix <[email protected]>

* chore: Update storage logic (#20)

* chore: Update storage logic

** Move to `db`
** Make io file operations asynchronous
** Add files locks

* chore: Sync with frontend new json format (#23)

* start node fix + python conditions + new conditions structure

* new api adaptation

* chore: Adapt to new frontend json format

* style: black backend up

* style: isort things up

---------

Co-authored-by: MXerFix <[email protected]>

* ci: Add workflows (#24)

* ci: Add github workflows

* fix: Maintain data across Docker restarts

* ci: fix workflows

* refactor: Move get_last_id to parent class

* fix: Update front lock

* fix: Correct docker internal paths

---------

Co-authored-by: MXerFix <[email protected]>

* Test: Add tests (#25)

* test: Add unit tests for services

* test: Add unit tests for endpoints

* style: black up tests

* style: isort tests

* test: Add websocket_manager unit test

* fix: Unify code to use async processes

* chore: Create log path in get_logger

* test: Add unit `test_start` for run

* test: Add endpoints integration test

* intgr-test: Add websocket

* refactor: Clean test_api_integration up

* style: Format and lint code

* ci: Add tests to workflow

* test: Fix communicating indefinetly

* fix: Avoid creating 2 event_loop in same thread

* chore: Catch internal process logs

* style: black up

* test: Fix test_check_status

* feat: Add `alive` status to run processes

* refactor: Move fixtures and use consts

* unit-test: Correct intg-tests to actual unit tests

* test: Add backend e2e

* test: Fix e2e test making it work with one client

* chore: Rename e2e test

* chore: Update package version

* feat: Support indexed search (#26)

* feat: Add indexing for dff services

* refactor: json_translator

* fix: Adapt index linenos to front changes

* fix: Write conditions ending with one \n

** This fixes a mismatch between index and .py file

* MAJOR CHANGE: New front (#30)

* upd str

* node instr header fix

---------

Co-authored-by: MXerFix <[email protected]>

* test: Test new front (#43)

* init e2e front test

* port 5173 to 8000 change

---------

Co-authored-by: Ramimashkouk <[email protected]>

* test: Add end to end test (#32)

* test: Add e2e test workflow

* chore: Push bun.lockb

---------

Co-authored-by: MXerFix <[email protected]>

* feat: Add makefile (#33)

* feat: Add make file

* test: Fix unit test test_start

* style: Black up

* test: Set e2e aside (#44)

* test: Fix unit test test_start

* merge front

* ci: Run e2e_test when pushing & PRing to dev

* style: Black up

* test: Comment e2e_test out

* test: Delete cypress

** Was deleted from automatic install for the sake of fixing docker

---------

Co-authored-by: Ramimashkouk <[email protected]>

* Prepare for version 0.1.0-beta.0 (#38)

* refactor: Use high-level pathlib

* refactor: Return process id by manager.start

* fix: Avoid accidental additions to process attrs

* refactor: Convert process status to enum

* style: black up

* chore: Fix check_status test

* chore: Raise NotImplementedError instead of pass

* chore: Add df_designer_project to .gitignore

* test: Assert ws connection step by step

* fix: Avoid storing all run info in build yml

** But in the same time provide clients with builds along with all their runs info

* chore: Return status.value and fix `is_alive`

* style: black up

* chore: Check path before passing to cmd

* test: Fix waiting for a process

* refactor: Simplify things in logging system

* ci: Remove repetitions among jobs

* chore: Check uniqueness of start_node in graph

* chore: Do various tests chores

* fixes

* fix: Correct start node translation

* merge

* init

* ci: Add publish and release workflow

---------

Co-authored-by: MXerFix <[email protected]>

* doc: Update README

---------

Co-authored-by: optk2k <[email protected]>
Co-authored-by: Denis Kuznetsov <[email protected]>
Co-authored-by: MXerFix <[email protected]>
Co-authored-by: Maks <[email protected]>
Co-authored-by: Artem M <[email protected]>
Co-authored-by: optk2k <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants