version: 2.1 executors: nodejs: docker: - image: cimg/node:18.17.1 golang: docker: - image: cimg/go:1.20.7 jobs: build_controller: executor: golang steps: - checkout - run: name: Build Controller command: | cd backend/services/controller && go build -o controller cmd/oktopus/main.go build_mochi: executor: golang steps: - checkout - run: name: Build Mochi command: | cd backend/services/mochi/ && go build -o mochi cmd/main.go build_frontend: executor: nodejs steps: - checkout - run: name: Build Frontend command: | cd frontend/ && npm i && npm run build deploy_controller: machine: image: ubuntu-2004:202010-01 steps: - run: name: Send Binary to Server command: | scp backend/services/controller/controller $SSH_USER@$SSH_HOST:/home/$SSH_USER ssh $SSH_USER@$SSH_HOST - run: name: Restart Services command: | sudo su mv controller /usr/bin/ systemctl restart controller workflows: build_and_deploy: jobs: - build_controller: filters: branches: only: dev - build_mochi: filters: branches: only: dev - build_frontend: filters: branches: only: dev - deploy_controller: requires: - build_controller filters: branches: only: dev