-
Notifications
You must be signed in to change notification settings - Fork 0
157 lines (130 loc) · 6.43 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
145
146
147
148
149
150
151
152
153
154
155
156
157
# 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 # Use your self-hosted runner
steps:
- name: Checkout Source
uses: actions/checkout@v4
- name: Set Environment Variables
shell: powershell
run: |
echo "ATLAS_DB_PASSWORD=${{ secrets.ATLAS_DB_PASSWORD }}" >> $env:GITHUB_ENV
echo "ATLAS_DB_USERNAME=${{ secrets.ATLAS_DB_USERNAME }}" >> $env:GITHUB_ENV
echo "ATLAS_CLUSTER=${{ secrets.ATLAS_CLUSTER }}" >> $env:GITHUB_ENV
echo "ATLAS_DB=${{ secrets.ATLAS_DB }}" >> $env:GITHUB_ENV
echo "ACCESS_TOKEN_SECRET=${{ secrets.ACCESS_TOKEN_SECRET }}" >> $env:GITHUB_ENV
echo "REFRESH_TOKEN_SECRET=${{ secrets.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 (if needed)
shell: powershell
run: |
if (-not (Get-Command docker-compose -ErrorAction SilentlyContinue)) {
$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
shell: powershell
run: Start-Process -FilePath "docker" -ArgumentList "login -u ${{ secrets.DOCKER_USERNAME }} -p ${{ secrets.DOCKER_PASSWORD }}" -Verb RunAs
- name: Build Docker Images
shell: powershell
run: Start-Process -FilePath "docker-compose" -ArgumentList "-f docker-compose.yml build" -Verb RunAs
- name: Push Docker Images
shell: powershell
run: Start-Process -FilePath "docker-compose" -ArgumentList "-f docker-compose.yml push" -Verb RunAs
deploy:
needs: build
runs-on: self-hosted # Use your self-hosted runner for deployment
steps:
- name: Checkout Source
uses: actions/checkout@v4
- name: Install Docker Compose (if needed)
shell: powershell
run: |
if (-not (Get-Command docker-compose -ErrorAction SilentlyContinue)) {
$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
shell: powershell
run: Start-Process -FilePath "docker-compose" -ArgumentList "-f docker-compose.yml pull" -Verb RunAs
- name: Delete Old Container
shell: powershell
run: Start-Process -FilePath "docker" -ArgumentList "rm -f baphomet-server-container" -Verb RunAs
- name: Run Docker Container
shell: powershell
run: Start-Process -FilePath "docker-compose" -ArgumentList "-f docker-compose.yml up -d" -Verb RunAs