-
Notifications
You must be signed in to change notification settings - Fork 0
145 lines (117 loc) · 5.53 KB
/
cicd.yml
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
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
# name: Deploy Baphomet Server
# on:
# push:
# branches:
# - master
# jobs:
# build:
# runs-on: windows-latest
# steps:
# - name: Checkout Source
# uses: actions/checkout@v4
# - name: Set Environment Variables
#
# env:
# ATLAS_DB_PASSWORD: ${{ secrets.ATLAS_DB_PASSWORD }}
# ATLAS_DB_USERNAME: ${{ secrets.ATLAS_DB_USERNAME }}
# ATLAS_CLUSTER: ${{ secrets.ATLAS_CLUSTER }}
# ATLAS_DB: ${{ secrets.ATLAS_DB }}
# ACCESS_TOKEN_SECRET: ${{ secrets.ACCESS_TOKEN_SECRET }}
# REFRESH_TOKEN_SECRET: ${{ secrets.REFRESH_TOKEN_SECRET }}
# SSL_PRIVATE_KEY: ${{ secrets.IONOS_SSL_PRIVATE_KEY }}
# SSL_CERT: ${{ secrets.IONOS_SSL_CERT }}
# SSL_CERT_INTERMEDIATE: ${{ secrets.IONOS_SSL_CERT_INTERMEDIATE}}
# run: |
# echo "ATLAS_DB_PASSWORD=${ATLAS_DB_PASSWORD}" >> $env:GITHUB_ENV
# echo "ATLAS_DB_USERNAME=${ATLAS_DB_USERNAME}" >> $env:GITHUB_ENV
# echo "ATLAS_CLUSTER=${ATLAS_CLUSTER}" >> $env:GITHUB_ENV
# echo "ATLAS_DB=${ATLAS_DB}" >> $env:GITHUB_ENV
# echo "ACCESS_TOKEN_SECRET=${ACCESS_TOKEN_SECRET}" >> $env:GITHUB_ENV
# echo "REFRESH_TOKEN_SECRET=${REFRESH_TOKEN_SECRET}" >> $env:GITHUB_ENV
# echo "SSL_CERT= ${{ secrets.IONOS_SSL_CERT }}" >> $env:GITHUB_ENV
# echo "SSL_PRIVATE_KEY= ${{ secrets.IONOS_SSL_PRIVATE_KEY }}" >> $env:GITHUB_ENV
# echo "SSL_CERT_INTERMEDIATE=${{ secrets.IONOS_SSL_CERT_INTERMEDIATE}}" >> $env:GITHUB_ENV
# - name: Install Docker Compose
# run: |
# curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
# chmod +x /usr/local/bin/docker-compose
# ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose
# - name: Install Docker Compose
#
# run: |
# $installPath = "${{ runner.temp }}/docker-compose.exe"
# Invoke-WebRequest -Uri "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-Windows-x86_64.exe" -OutFile $installPath
# [System.IO.File]::Move($installPath, "${{ env:ProgramFiles }}\Docker\Docker\resources\bin\docker-compose.exe")
# - name: Login to Docker Hub
#
# run: docker login -u ${{secrets.DOCKER_USERNAME}} -p ${{secrets.DOCKER_PASSWORD}}
# - name: Build and Push Docker Images
#
# run: |
# docker compose -f docker-compose.yml build
# docker compose -f docker-compose.yml push
# deploy:
# needs: build
# runs-on: self-hosted
# steps:
# - name: Checkout Source
# uses: actions/checkout@v4
# - name: Pull Image from Docker Hub
#
# run: docker compose -f docker-compose.yml pull
# - name: Delete Old Container
#
# run: docker rm -f baphomet-server-container
# - name: Run Docker Container
#
# run: docker compose -f docker-compose.yml up -d
name: Deploy Baphomet Server
on:
push:
branches:
- master
jobs:
build:
runs-on: self-hosted
steps:
- name: Checkout Source
uses: actions/checkout@v4
- name: Set Environment Variables
run: |
echo "ATLAS_DB_PASSWORD=${{ secrets.ATLAS_DB_PASSWORD }}" >> ~/.env
echo "ATLAS_DB_USERNAME=${{ secrets.ATLAS_DB_USERNAME }}" >> ~/.env
echo "ATLAS_CLUSTER=${{ secrets.ATLAS_CLUSTER }}" >> ~/.env
echo "ATLAS_DB=${{ secrets.ATLAS_DB }}" >> ~/.env
echo "ACCESS_TOKEN_SECRET=${{ secrets.ACCESS_TOKEN_SECRET }}" >> ~/.env
echo "REFRESH_TOKEN_SECRET=${{ secrets.REFRESH_TOKEN_SECRET }}" >> ~/.env
echo "SSL_CERT=${{ secrets.IONOS_SSL_CERT }}" >> ~/.env
echo "SSL_PRIVATE_KEY=${{ secrets.IONOS_SSL_PRIVATE_KEY }}" >> ~/.env
echo "SSL_CERT_INTERMEDIATE=${{ secrets.IONOS_SSL_CERT_INTERMEDIATE }}" >> ~/.env
- name: Install Docker Compose
run: |
$installPath = "${{ runner.temp }}/docker-compose.exe"
Invoke-WebRequest -Uri "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-Windows-x86_64.exe" -OutFile $installPath
Start-Process -FilePath "powershell.exe" -ArgumentList "-Command Move-Item -Path $installPath -Destination 'C:\Program Files\Docker\Docker\resources\bin\docker-compose.exe'" -Verb RunAs
- name: Login to Docker Hub
run: docker login -u ${{ secrets.DOCKER_USERNAME }} -p ${{ secrets.DOCKER_PASSWORD }}
- name: Build and Push Docker Images
run: |
docker compose -f docker-compose.yml build
docker compose -f docker-compose.yml push
deploy:
needs: build
runs-on: self-hosted
steps:
- name: Checkout Source
uses: actions/checkout@v4
- name: Install Docker Compose (if needed)
run: |
$installPath = "${{ runner.temp }}/docker-compose.exe"
Invoke-WebRequest -Uri "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-Windows-x86_64.exe" -OutFile $installPath
Start-Process -FilePath "powershell.exe" -ArgumentList "-Command Move-Item -Path $installPath -Destination 'C:\Program Files\Docker\Docker\resources\bin\docker-compose.exe'" -Verb RunAs
- name: Pull Image from Docker Hub
run: docker compose -f docker-compose.yml pull
- name: Delete Old Container
run: docker rm -f baphomet-server-container
- name: Run Docker Container
run: docker compose -f docker-compose.yml up -d