Skip to content
This repository was archived by the owner on Jul 17, 2024. It is now read-only.

Commit

Permalink
Deploy production environment to Membrane Cloud
Browse files Browse the repository at this point in the history
  • Loading branch information
kamil-stasiak committed Feb 7, 2024
1 parent 752a520 commit b062589
Showing 1 changed file with 6 additions and 58 deletions.
64 changes: 6 additions & 58 deletions .github/workflows/production_build_and_deploy.yml
Original file line number Diff line number Diff line change
@@ -1,13 +1,11 @@
name: Production Build and Deploy
on:
push:
tags:
tags:
- 'v*.*.*'

env:
env:
DOMAIN: jellyroom.membrane.stream
JF1_HOST: jellyfish.membrane.stream
JF2_HOST: jellyfish1.membrane.stream
BE_HOST: server.jellyroom.membrane.stream
PROJECT: production
COMPOSE_FILE_NAME: docker-compose-deploy.yaml
Expand All @@ -32,26 +30,15 @@ jobs:
echo "DOMAIN=${{env.DOMAIN}}
JELLYROOM_VERSION=${{ steps.versions.outputs.jellyroom }}
JELLYFISH_VERSION=${{ steps.versions.outputs.jellyfish }}
JF_SERVER_API_TOKEN=${{secrets.SERVER_API_TOKEN}}
JF_CHECK_ORIGIN=false
JF_PORT=5002
JF1_IP=${{secrets.PRODUCTION_IP}}
JF2_IP=${{secrets.PRODUCTION2_IP}}
JF1_HOST=${{env.JF1_HOST}}
JF2_HOST=${{env.JF2_HOST}}
JF_SERVER_API_TOKEN=${{secrets.SERVER_API_TOKEN_CLOUD_PRODUCTION}}
BE_HOST=${{env.BE_HOST}}
BE_JF_SECURE_CONNECTION=true
BE_JF_ADDRESSES=${{env.JF1_HOST}} ${{env.JF2_HOST}}
PROM_JELLYFISH_TARGETS=jellyfish1:9568,${{secrets.PRODUCTION2_IP}}:9568
PROM_NODE_TARGETS=172.17.0.1:9100,${{secrets.PRODUCTION2_IP}}:9100
LOKI_ADDRESS=loki
GF_SECURITY_ADMIN_PASSWORD=${{secrets.GF_SECURITY_ADMIN_PASSWORD}}
GF_SECURITY_ADMIN_USER=${{secrets.GF_SECURITY_ADMIN_USER}}" > .env
BE_JF_ADDRESSES=${{vars.JF1_HOST_CLOUD_PRODUCTION}}" > .env
- name: Remove old containers on first host
uses: JimCronqvist/action-ssh@master
with:
hosts: ${{ secrets.PRODUCTION_IP }}:${{ secrets.SSH_PROD_PORT }}
hosts: ${{ secrets.PRODUCTION_IP }}
privateKey: ${{ secrets.SSH_PRIV_KEY }}
command: |
docker ps -aq | xargs -r docker stop | xargs -r docker rm
Expand All @@ -62,44 +49,5 @@ jobs:
remote_docker_host: ${{ secrets.PRODUCTION_IP }}
ssh_private_key: ${{ secrets.SSH_PRIV_KEY }}
ssh_public_key: ${{ secrets.SSH_PUB_KEY }}
ssh_port: ${{ secrets.SSH_PROD_PORT }}
stack_file_name: ${{ env.COMPOSE_FILE_NAME }}
args: -p ${{ env.PROJECT }} --env-file .env up -d --remove-orphans --build jellyfish1 node-exporter1 frontend backend prometheus grafana promtail loki

deploy2:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2

- name: Set versions
id: versions
run: echo "jellyfish=$(cat .jellyfish-version)" >> $GITHUB_OUTPUT

- name: Prepare .env file for the deployment
id: variables_population
run: |
echo "JF_SERVER_API_TOKEN=${{secrets.SERVER_API_TOKEN}}
JELLYFISH_VERSION=${{ steps.versions.outputs.jellyfish }}
JF_CHECK_ORIGIN=false
JF_PORT=5002
JF1_IP=${{secrets.PRODUCTION_IP}}
JF2_IP=${{secrets.PRODUCTION2_IP}}
LOKI_ADDRESS=${{secrets.PRODUCTION_IP}}
JF2_HOST=${{env.JF2_HOST}}" > .env
- name: Remove old containers on second host
uses: JimCronqvist/action-ssh@master
with:
hosts: ${{ secrets.PRODUCTION2_IP }}:${{ secrets.SSH_PROD_PORT }}
privateKey: ${{ secrets.SSH_PRIV_KEY }}
command: |
docker ps -aq | xargs -r docker stop | xargs -r docker rm
- name: Deploy docker compose to a pre-configured server on second host
uses: TapTap21/docker-remote-deployment-action@v1.1
with:
remote_docker_host: ${{ secrets.PRODUCTION2_IP }}
ssh_private_key: ${{ secrets.SSH_PRIV_KEY }}
ssh_public_key: ${{ secrets.SSH_PUB_KEY }}
ssh_port: ${{ secrets.SSH_PROD_PORT }}
stack_file_name: ${{ env.COMPOSE_FILE_NAME }}
args: -p ${{ env.PROJECT }} --env-file .env up -d --remove-orphans --build jellyfish2 node-exporter2 promtail
args: -p ${{ env.PROJECT }} --env-file .env up -d --remove-orphans --build frontend backend

0 comments on commit b062589

Please sign in to comment.