Skip to content

Commit

Permalink
Merge pull request #59 from onesimus-wiafe/SCRUM-63-automatially-buil…
Browse files Browse the repository at this point in the history
…d-to-docker-on-push-to-main

chore: Add Docker build and push workflows for market data, order processing, report, and user management services
  • Loading branch information
djangbahevans authored Aug 7, 2024
2 parents 442829e + 6915d64 commit fad4a23
Show file tree
Hide file tree
Showing 6 changed files with 146 additions and 22 deletions.
34 changes: 34 additions & 0 deletions .github/workflows/market-data-docker-push.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
name: Build and push docker image of market data when changes are pushed to the main branch

on:
push:
branches:
- main
paths:
- 'MarketDataService/**'

jobs:
build:
runs-on: ubuntu-latest

steps:
- name: Setup QEMU
uses: docker/setup-qemu-action@v3

- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3

- name: Login to DockerHub
uses: docker/login-action@v3
with:
username: ${{ secrets.DOCKER_USERNAME }}
password: ${{ secrets.DOCKER_PASSWORD }}

- name: Build and push Docker image
uses: docker/build-push-action@v2
with:
context: .
file: ./MarketDataService/Dockerfile
push: true
tags: ${{ secrets.DOCKER_USERNAME }}/market-srv:latest

34 changes: 34 additions & 0 deletions .github/workflows/orders-docker-push.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
name: Build and push docker image of order processing service when changes are pushed to the main branch

on:
push:
branches:
- main
paths:
- 'OrderProcessingService/**'

jobs:
build:
runs-on: ubuntu-latest

steps:
- name: Setup QEMU
uses: docker/setup-qemu-action@v3

- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3

- name: Login to DockerHub
uses: docker/login-action@v3
with:
username: ${{ secrets.DOCKER_USERNAME }}
password: ${{ secrets.DOCKER_PASSWORD }}

- name: Build and push Docker image
uses: docker/build-push-action@v2
with:
context: .
file: ./OrderProcessingService/Dockerfile
push: true
tags: ${{ secrets.DOCKER_USERNAME }}/order-srv:latest

34 changes: 34 additions & 0 deletions .github/workflows/reports-docker-push.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
name: Build and push docker image of report service when changes are pushed to the main branch

on:
push:
branches:
- main
paths:
- 'ReportService/**'

jobs:
build:
runs-on: ubuntu-latest

steps:
- name: Setup QEMU
uses: docker/setup-qemu-action@v3

- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3

- name: Login to DockerHub
uses: docker/login-action@v3
with:
username: ${{ secrets.DOCKER_USERNAME }}
password: ${{ secrets.DOCKER_PASSWORD }}

- name: Build and push Docker image
uses: docker/build-push-action@v2
with:
context: .
file: ./ReportService/Dockerfile
push: true
tags: ${{ secrets.DOCKER_USERNAME }}/report-srv:latest

34 changes: 34 additions & 0 deletions .github/workflows/users-docker-push.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
name: Build and push docker image of user management when changes are pushed to the main branch

on:
push:
branches:
- main
paths:
- 'UserManagement/**'

jobs:
build:
runs-on: ubuntu-latest

steps:
- name: Setup QEMU
uses: docker/setup-qemu-action@v3

- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3

- name: Login to DockerHub
uses: docker/login-action@v3
with:
username: ${{ secrets.DOCKER_USERNAME }}
password: ${{ secrets.DOCKER_PASSWORD }}

- name: Build and push Docker image
uses: docker/build-push-action@v2
with:
context: .
file: ./UserManagement/Dockerfile
push: true
tags: ${{ secrets.DOCKER_USERNAME }}/user-srv:latest

Original file line number Diff line number Diff line change
@@ -1,5 +1,12 @@
package com.joe.trading.order_processing.nats;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import org.springframework.stereotype.Service;

import com.joe.trading.order_processing.entities.OrderBook;
import com.joe.trading.order_processing.entities.cache.MarketData;
import com.joe.trading.order_processing.repositories.redis.dao.InternalOpenOrderDAO;
Expand All @@ -8,14 +15,8 @@
import com.joe.trading.order_processing.services.OrderBookService;
import com.joe.trading.shared.events.Event;
import com.joe.trading.shared.nats.NatsService;
import jakarta.annotation.PostConstruct;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import jakarta.annotation.PostConstruct;

@Service
public class NatsSubscriber {
Expand All @@ -25,7 +26,6 @@ public class NatsSubscriber {
private final OrderBookDAO orderBookRepo;
private final OrderBookService orderBookService;

@Autowired
public NatsSubscriber(NatsService natsService, MarketDataDAO marketDataRepo, InternalOpenOrderDAO openOrderRepo, OrderBookDAO orderBookRepo, OrderBookService orderBookService) {
this.natsService = natsService;
this.marketDataRepo = marketDataRepo;
Expand Down Expand Up @@ -128,8 +128,8 @@ private void saveOrderBookUpdate(Map<Object, Object> message){
orderBookRepo.saveOrderBook(key, booksToCache);
}
else {
int key_len = key.length();
String cacheKey = key.substring(0, key_len-5)+"_OPEN";
int keylen = key.length();
String cacheKey = key.substring(0, keylen-5)+"_OPEN";
updateInternalOrders(cacheKey, key, actualMapData);
}
});
Expand Down
Original file line number Diff line number Diff line change
@@ -1,26 +1,14 @@
package com.joe.trading.order_processing.services;

import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
import java.util.Base64;
import java.util.Date;
import java.util.HashMap;
import java.util.Map;
import java.util.function.Function;

import javax.crypto.SecretKey;

import org.springframework.beans.factory.annotation.Value;
import org.springframework.security.core.userdetails.UserDetails;
import org.springframework.stereotype.Service;

import com.joe.trading.order_processing.entities.User;
import com.joe.trading.shared.auth.AccountType;

import io.jsonwebtoken.Claims;
import io.jsonwebtoken.Jwts;
import io.jsonwebtoken.io.Decoders;
import io.jsonwebtoken.security.Keys;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
Expand Down

0 comments on commit fad4a23

Please sign in to comment.