diff --git a/.github/workflows/docker-publish.yml b/.github/workflows/docker-publish.yml index 3959641..502bba2 100644 --- a/.github/workflows/docker-publish.yml +++ b/.github/workflows/docker-publish.yml @@ -7,6 +7,7 @@ on: - 'brokers/**' - 'README.md' - '.gitignore' + - 'Makefile' pull_request: branches: [ main ] @@ -14,6 +15,7 @@ on: - 'brokers/**' - 'README.md' - '.gitignore' + - 'Makefile' release: types: [ published ] @@ -30,8 +32,24 @@ on: jobs: + build-local: + runs-on: ubuntu-latest + + steps: + - name: Checkout repository + uses: actions/checkout@v4 + + - name: npm run build + run: | + make node-build + + - name: npm run preview + run: | + npm run preview -- --port 8080 & sleep 10; curl -f http://localhost:8080 || exit 1 + build-test: runs-on: ubuntu-latest + needs: build-local steps: - name: Checkout repository diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..c5c77ad --- /dev/null +++ b/Makefile @@ -0,0 +1,27 @@ +.PHONY: node-env-prep mongo-start mongo-stop mongo-restart mongo-reset node-build dev-start + +mongo-start: + docker compose -f ./docker-compose-local.yml up -d mongo + +mongo-stop: + docker compose -f ./docker-compose-local.yml down mongo + +mongo-restart: mongo-stop mongo-start + +mongo-reset: mongo-stop + docker rm -f tradenote_db + $(MAKE) mongo-start + +node-env-prep: + . $$NVM_DIR/nvm.sh; nvm install 18 + . $$NVM_DIR/nvm.sh; nvm use 18 + . $$NVM_DIR/nvm.sh; nvm use 18; npm install + +node-build: node-env-prep + . $$NVM_DIR/nvm.sh; nvm use 18; npm run build + +dev-start: mongo-start node-build + . $$NVM_DIR/nvm.sh; nvm use 18; \ + MONGO_URI=mongodb://tradenote:tradenote@localhost:27017/tradenote?authSource=admin \ + TRADENOTE_DATABASE=tradenote APP_ID=123456 MASTER_KEY=123456 TRADENOTE_PORT=8080 \ + npm run start \ No newline at end of file