summaryrefslogtreecommitdiff
path: root/.github/workflows/deploy.yml
blob: f9ed5469cc8ce1f5ebdc119517bef8e9c8ba1781 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
name: Deploy app.opendc.org

on:
  push:
    branches: ["prod"]
  workflow_dispatch:
  workflow_run:
    workflows: ["Publish website docker image"]
    types: [completed]

jobs:
  deploy-app:
    if: ${{ github.event.workflow_run.conclusion == 'success' || github.event_name != 'workflow_run' }}
    runs-on: ubuntu-22.04
    steps:
      - name: Create SSH key
        run: |
          mkdir -p ~/.ssh/
          echo "$SSH_PRIVATE_KEY" > ../opendc.key
          sudo chmod 600 ../opendc.key
          echo "$SSH_KNOWN_HOSTS" > ~/.ssh/known_hosts
        shell: bash
        env:
          SSH_PRIVATE_KEY: ${{secrets.SSH_PRIVATE_KEY}}
          SSH_KNOWN_HOSTS: ${{secrets.SSH_KNOWN_HOSTS}}
      - name: Pull Changes
        run: ssh -i ../opendc.key opendc@opendc.org 'cd /opt/opendc && git pull origin'
      - name: Print Versions
        run: |
          ssh -i ../opendc.key opendc@opendc.org bash << 'EOF'
          cd /opt/opendc
          source .env
          echo "OPENDC_WEB_API_VERSION=$OPENDC_WEB_API_VERSION"
          echo "OPENDC_RUNNER_VERSION=$OPENDC_RUNNER_VERSION"
          echo "OPENDC_WEBSITE_VERSION=$OPENDC_WEBSITE_VERSION"
          EOF
      - name: Pull Images
        run: ssh -i ../opendc.key opendc@opendc.org 'cd /opt/opendc && source .env && docker-compose -f docker-compose.yml -f docker-compose.prod.yml pull'
      - name: Deploy Images
        run: ssh -i ../opendc.key opendc@opendc.org 'cd /opt/opendc && source .env && docker-compose -f docker-compose.yml -f docker-compose.prod.yml down && docker-compose -f docker-compose.yml -f docker-compose.prod.yml up -d'