Skip to content
This repository was archived by the owner on Dec 24, 2025. It is now read-only.
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
42 changes: 31 additions & 11 deletions .github/workflows/backend.yml
Original file line number Diff line number Diff line change
Expand Up @@ -13,19 +13,27 @@ on:
jobs:
publish:
runs-on: ubuntu-latest

defaults:
run:
working-directory: ./application/backend

steps:
# Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it
- name: Checkout
uses: actions/checkout@v2
with:
ref: dev/backend
- name: Setup JDK
uses: actions/setup-java@v2.3.1
with:
java-version: '11'
distribution: 'temurin'
cache: 'gradle'

- name: Build jar
run: ./gradlew jar
- name: Build image
run: ./application/backend/gradlew bootBuildImage
run: docker build . -t beabee/beabee_spring
- name: Docker login
uses: docker/login-action@v1.10.0
with:
Expand All @@ -38,13 +46,25 @@ jobs:
deploy:
runs-on: ubuntu-latest
needs: publish

defaults:
run:
working-directory: ./application

steps:
- name: Configure AWS credentials
uses: aws-actions/configure-aws-credentials@v1
with:
aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }}
aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
aws-region: ${{ secrets.AWS_REGION }}

# TODO Waiting for AWS registaration to cmoplete.
- name: Write the SSH key to a temp file
run: echo ${{ secrets.SSH_KEY }} > temp.pem

- name: Copy docker-compose.yml into to EC2 instance with SCP.
run: scp -i ./temp.pem ./docker-compose.yml ${{ secrets.SSH_USER }}@${{ secrets.SSH_HOST }}:/home/${{ secrets.SSH_USER }}

- name: Login to Docker Hub at EC2 instance
run: ssh -i ./temp.pem ./docker-compose.yml ${{ secrets.SSH_USER }}@${{ secrets.SSH_HOST }} "docker login -u ${{ secrets.DOCKER_USERNAME }} -p ${{ secrets.DOCKER_PASSWORD }}"

- name: Down currently running BeABee application
run: ssh -i ./temp.pem ./docker-compose.yml ${{ secrets.SSH_USER }}@${{ secrets.SSH_HOST }} "docker-compose do

- name: Run services with Docker Compose
run: ssh -i ./temp.pem ./docker-compose.yml ${{ secrets.SSH_USER }}@${{ secrets.SSH_HOST }} "docker-compose up"

- name: Delete temp key file
run: rm temp.pem
3 changes: 3 additions & 0 deletions application/backend/Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
FROM openjdk:13-alpine
COPY build/libs/beabee-0.0.1-SNAPSHOT.jar app.jar
ENTRYPOINT ["java","-jar","/app.jar"]
35 changes: 35 additions & 0 deletions application/docker-compose.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
version: '3'

services:
db-server:
image: "postgres"
container_name: "db-server"
ports:
- "5432:5432"
environment:
POSTGRES_DB: beabee
POSTGRES_USER: postgres
POSTGRES_PASSWORD: 5432
networks:
- beabeenw
beabee-server:
image: "beabeeapp/beabee"
container_name: "beabee-server"
ports:
- "8085:8085"
environment:
spring.datasource.url: jdbc:postgresql://db-server:5432/beabee
SPRING_DATASOURCE_USERNAME: postgres
SPRING_DATASOURCE_PASSWORD: 5432
networks:
- beabeenw
depends_on:
- db-server
restart: always
networks:
beabeenw:
driver: bridge
ipam:
driver: default
config:
- subnet: '10.111.6.0/24'