-
Notifications
You must be signed in to change notification settings - Fork 6
96 lines (85 loc) · 4.83 KB
/
Copy pathdeploy.yml
File metadata and controls
96 lines (85 loc) · 4.83 KB
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
name: Deploy with Docker Compose
on:
# push:
# branches:
# - test # Trigger on push to the `test` branch
workflow_dispatch: # Enable manual trigger
jobs:
deploy:
runs-on: ubuntu-latest
timeout-minutes: 30
steps:
# Step 1: Check out the code
- name: Checkout code
uses: actions/checkout@v3
# Step 2: Log in to GitHub Container Registry using the GitHub token
- name: Log in to GitHub Container Registry
uses: docker/login-action@v2
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
# Step 3: Force Docker Logout (in case of cached credentials)
- name: Force Docker Logout
run: docker logout ghcr.io
# Step 4: SSH into the server and deploy
- name: Run docker-compose up on the server
uses: appleboy/ssh-action@v0.1.8
with:
host: ${{ secrets.DEPLOYMENT_SERVER_UAT }}
username: ${{ secrets.SSH_USER_UAT }}
key: ${{ secrets.SSH_PRIVATE_KEY_UAT }}
script: |
cd ~/vectoratlas-software-code/src/Docker
# Export environment variables from GitHub secrets
export POSTGRES_DB_UAT="${{ secrets.POSTGRES_DB_UAT }}"
export POSTGRES_USER_UAT="${{ secrets.POSTGRES_USER_UAT }}"
export POSTGRES_PASSWORD_UAT="${{ secrets.POSTGRES_PASSWORD_UAT }}"
export POSTGRES_HOST_UAT="${{ secrets.POSTGRES_HOST_UAT }}"
export POSTGRES_PORT_UAT="${{ secrets.POSTGRES_PORT_UAT }}"
export AUTH0_AUDIENCE_UAT="${{ secrets.AUTH0_AUDIENCE_UAT }}"
export AUTH0_CLIENT_ID_UAT="${{ secrets.AUTH0_CLIENT_ID_UAT }}"
export AUTH0_CLIENT_SECRET_UAT="${{ secrets.AUTH0_CLIENT_SECRET_UAT }}"
export AZURE_STORAGE_CONNECTION_STRING_UAT="${{ secrets.AZURE_STORAGE_CONNECTION_STRING_UAT }}"
export BASE_URL_UAT="${{ secrets.BASE_URL_UAT }}"
export DATACITE_PASSWORD="${{ secrets.DATACITE_PASSWORD }}"
export DATACITE_PREFIX_UAT="${{ secrets.DATACITE_PREFIX_UAT }}"
export DATACITE_URL_UAT="${{ secrets.DATACITE_URL_UAT }}"
export DATACITE_USER="${{ secrets.DATACITE_USER }}"
export DATA_INGESTION_URL_UAT="${{ secrets.DATA_INGESTION_URL_UAT }}"
export DATA_VALIDATION_URL_UAT="${{ secrets.DATA_VALIDATION_URL_UAT }}"
export DOI_PUBLISHER_UAT="${{ secrets.DOI_PUBLISHER_UAT }}"
export DOI_RESOLVER_BASE_URL_UAT="${{ secrets.DOI_RESOLVER_BASE_URL_UAT }}"
export EMAIL_FROM_UAT="${{ secrets.EMAIL_FROM_UAT }}"
export EMAIL_HOST_UAT="${{ secrets.EMAIL_HOST_UAT }}"
export EMAIL_PASSWORD_UAT="${{ secrets.EMAIL_PASSWORD_UAT }}"
export EMAIL_PORT_UAT="${{ secrets.EMAIL_PORT_UAT }}"
export EMAIL_SECURE_UAT="${{ secrets.EMAIL_SECURE_UAT }}"
export IMAP_PORT_UAT="${{ secrets.IMAP_PORT_UAT }}"
export IMAP_SERVER_UAT="${{ secrets.IMAP_SERVER_UAT }}"
export SENT_EMAIL_FOLDER_UAT="${{ secrets.SENT_EMAIL_FOLDER_UAT }}"
export TEMP_DIR_UAT="${{ secrets.TEMP_DIR_UAT }}"
export TOKEN_KEY_UAT="${{ secrets.TOKEN_KEY_UAT }}"
export AUTH0_SECRET_UAT="${{ secrets.AUTH0_SECRET_UAT }}"
export POSTGRES_USER_UAT="${{ secrets.POSTGRES_USER_UAT }}"
export POSTGRES_PASSWORD_UAT="${{ secrets.POSTGRES_PASSWORD_UAT }}"
export POSTGRES_HOST_UAT="${{ secrets.POSTGRES_HOST_UAT }}"
export AUTH0_BASE_URL_UAT="${{secrets.AUTH0_BASE_URL_UAT}}"
export AUTH0_ISSUER_BASE_URL_UAT="${{secrets.AUTH0_ISSUER_BASE_URL_UAT}}"
export DATABASE_URL_ANALYTICS_UAT="${{secrets.DATABASE_URL_ANALYTICS_UAT}}"
export DATABASE_URL_ANALYTICS_UAT="${{secrets.DATABASE_URL_ANALYTICS_UAT}}"
export AUTH0_CLIENT_ID_API_UAT="${{secrets.AUTH0_CLIENT_ID_API_UAT}}"
export AUTH0_CLIENT_SECRET_API_UAT="${{secrets.AUTH0_CLIENT_SECRET_API_UAT}}"
export FILE_STORAGE_TYPE="${{secrets.FILE_STORAGE_TYPE}}"
export AZURE_CONTAINER_NAME="${{secrets.AZURE_CONTAINER_NAME}}"
export AUTH0_ISSUER_URL_API_UAT="${{secrets.AUTH0_ISSUER_URL_API_UAT}}"
export NEXT_PUBLIC_AUTH_ENDPOINT="http://localhost:3001/auth/token"
export DOI_ENVIRONMENT="${{secrets.DOI_ENVIRONMENT}}"
# Log in to GHCR on the remote server using the GitHub token
echo "${{ secrets.GITHUB_TOKEN }}" | docker login ghcr.io -u ${{ github.actor }} --password-stdin
#Delete docker build cache
docker builder prune -f -a
# Pull the latest images
docker compose -f docker-compose.uat.yml pull
# Start the containers
docker compose -f docker-compose.uat.yml up --build -d