Merge pull request #97 from MODU-TAXI/MS-191-FCM-setting-APN #122
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Deploy Develop Profile | |
on: | |
push: | |
branches: | |
- develop | |
env: | |
REGISTRY: ghcr.io | |
REPOSITORY: ${{ github.repository }} | |
IMAGE_TAG: dev:${{ github.sha }} | |
GITHUB_ACTOR: ${{ github.actor }} | |
jobs: | |
Deploy: | |
name: Build and Deploy | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
with: | |
token: ${{secrets.TOKEN_GITHUB}} | |
submodules: recursive | |
- name: Git Submodule | |
run: | | |
cd config | |
git checkout develop | |
- name: Login to GitHub Container Registry | |
uses: docker/login-action@v3 | |
with: | |
registry: ${{ env.REGISTRY }} | |
username: ${{ env.GITHUB_ACTOR }} | |
password: ${{ secrets.TOKEN_GITHUB }} | |
- name: lowercase the image tag & repository | |
run: | | |
echo "REPOSITORY=$(echo $REPOSITORY | tr '[:upper:]' '[:lower:]')" >> ${GITHUB_ENV} | |
echo "IMAGE_TAG=$(echo $IMAGE_TAG | tr '[:upper:]' '[:lower:]')" >> ${GITHUB_ENV} | |
- name: Set Spring Image Environment Variable | |
run: | | |
echo "SPRING_IMAGE=${{ env.REGISTRY }}/${{ env.REPOSITORY }}-${{ env.IMAGE_TAG }}" >> ${GITHUB_ENV} | |
- name: Write Version | |
run: | | |
echo -e "\nserver-version: dev" >> config/application-dev.yml | |
- name: Build Image | |
run: docker build --no-cache -t ${{ env.SPRING_IMAGE }} -f Dockerfile-dev . | |
- name: Push | |
run: docker push ${{ env.SPRING_IMAGE }} | |
- name: Write Docker Image Tag Information to .env File | |
run: | | |
echo -e "\nSPRING_IMAGE=${{ env.SPRING_IMAGE }}" >> config/dockerEnv/dev.env | |
- name: Copy docker-compose.dev.yml | |
uses: appleboy/scp-action@master | |
with: | |
host: ${{ secrets.SSH_HOST }} | |
port: ${{ secrets.SSH_PORT }} | |
username: ${{ secrets.SSH_USERNAME }} | |
key: ${{ secrets.SSH_PRIVATE_KEY }} | |
source: "docker-compose.dev.yml,config/dockerEnv/*" | |
target: /home/ubuntu | |
- name: Check Docker | |
id: dockerChecker | |
uses: appleboy/ssh-action@master | |
with: | |
host: ${{ secrets.SSH_HOST }} | |
port: ${{ secrets.SSH_PORT }} | |
username: ${{ secrets.SSH_USERNAME }} | |
key: ${{ secrets.SSH_PRIVATE_KEY }} | |
script: | | |
docker --version | |
docker-compose --version | |
- name: Install Docker | |
if: ${{ failure() && steps.dockerChecker.conclusion == 'failure' }} | |
uses: appleboy/ssh-action@master | |
with: | |
host: ${{ secrets.SSH_HOST }} | |
port: ${{ secrets.SSH_PORT }} | |
username: ${{ secrets.SSH_USERNAME }} | |
key: ${{ secrets.SSH_PRIVATE_KEY }} | |
script: | | |
sudo apt-get update | |
sudo apt-get install docker.io | |
sudo ln -sf /usr/bin/docker.io /usr/local/bin/docker | |
sudo curl -L https://github.com/docker/compose/releases/latest/download/docker-compose-$(uname -s)-$(uname -m) -o /usr/local/bin/docker-compose | |
sudo chmod +x /usr/local/bin/docker-compose | |
docker --version | |
docker-compose --version | |
- name: Deploy | |
if: ${{ always() }} | |
uses: appleboy/ssh-action@master | |
with: | |
host: ${{ secrets.SSH_HOST }} | |
port: ${{ secrets.SSH_PORT }} | |
username: ${{ secrets.SSH_USERNAME }} | |
key: ${{ secrets.SSH_PRIVATE_KEY }} | |
script: | | |
cd /home/ubuntu | |
sudo docker login ${{ env.REGISTRY }} -u ${{ env.GITHUB_ACTOR }} -p ${{ secrets.TOKEN_GITHUB }} | |
sudo docker container stop spring | |
sudo docker container rm spring | |
sudo docker-compose --env-file=config/dockerEnv/dev.env -f docker-compose.dev.yml -p backend up -d | |
sudo docker image prune -af | |
sudo docker network prune -f |