Skip to content

Dockerize and deploy app for development environment #14

Dockerize and deploy app for development environment

Dockerize and deploy app for development environment #14

name: Dockerize and deploy app [dev]
run-name: Dockerize and deploy app for development environment
on:
push:
branches:
- development
jobs:
Define-services-matrix:
runs-on: ubuntu-latest
environment: development
outputs:
services-matrix: ${{ steps.generate-matrix.outputs.matrix }}
steps:
- name: Check out repository code
uses: actions/checkout@v4
- name: Generate matrix data
id: generate-matrix
run: |
./.github/workflows/scripts/generate-services-matrix.sh
shell: bash
- name: Output matrix data
run: |
echo "Matrix: ${{ steps.generate-matrix.outputs.matrix }}"
Build-image:
needs: Define-services-matrix
runs-on: ubuntu-latest
environment: development
strategy:
matrix:
service: ${{ fromJSON(needs.Define-services-matrix.outputs.services-matrix) }}
steps:
- name: Check out repository code
uses: actions/checkout@v4
- name: Set up QEMU
uses: docker/setup-qemu-action@v3
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
- name: Login to Docker Hub
uses: docker/login-action@v3
with:
username: ${{ vars.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_TOKEN }}
- name: Build and push image
uses: docker/build-push-action@v6
with:
file: Dockerfile-development
push: true
tags: ${{ vars.DOCKERHUB_USERNAME }}/utconnect-${{ matrix.service.service-name }}:dev-v1
build-args: |
service_name: ${{ matrix.service.service-name }}
# Deploy-app:
# needs:
# - Build-image
# runs-on: ubuntu-latest
# environment: development
# steps:
# - name: Check out repository code
# uses: actions/checkout@v4
#
# - name: Deploy app
# run: |
# set -x
# eval $(ssh-agent -s)
# ssh-add <(echo "${{ secrets.PRIVATE_KEY_SSH_TO_SERVER }}")
# mkdir -p ~/.ssh
# ssh-keyscan -H ${{ secrets.SERVER_IP_ADDRESS }} >> ~/.ssh/known_hosts
# ssh ${{ secrets.SERVER_USER }}@${{ secrets.SERVER_IP_ADDRESS }} << 'EOF'
# set -x
# cd ${{ secrets.COMMON_SETUP_REPOSITORY_PATH }}
# git checkout main
# git pull
# chmod +x ./create_network.sh
# sudo ./create_network.sh
#
# cd ${{ secrets.REPOSITORY_PATH }}
# git checkout development
# git pull
#
# sudo DB_USERNAME=${{ secrets.APP_DB_USERNAME }} DB_PASSWORD=${{ secrets.APP_DB_PASSWORD }} docker compose -f compose-development.yaml up --remove-orphans -d
# EOF