Repository navigation
Expand file tree
/
Copy pathmain.py
More file actions
executable file
·87 lines (74 loc) · 2.67 KB
/
Copy pathmain.py
File metadata and controls
executable file
·87 lines (74 loc) · 2.67 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
from manage_functions import *
from manage_rds import create_rds_instance, wait_for_db_instance_available, get_rds_endpoint
from manage_mysql import create_database_and_user
from manage_site import forge_manage_site
from manage_site_env import forge_manage_site_env
from manage_site_ssl import forge_manage_site_ssl
from manage_site_deployment_script import forge_manage_site_deployment_script
BRANCH_NAME = os.getenv('INPUT_GITHUB_BRANCH_NAME', 'dev')
BRANCH_NAME_WEB_SAFE = to_web_safe_string(BRANCH_NAME)
RDS_VPC_ID = os.getenv('INPUT_RDS_VPC_ID')
RDS_SUBNET_GROUP = os.getenv('INPUT_RDS_SUBNET_GROUP')
RDS_ROOT_USERNAME = os.getenv('INPUT_RDS_ROOT_USERNAME')
RDS_ROOT_PASSWORD = os.getenv('INPUT_RDS_ROOT_PASSWORD')
RDS_NAME = os.getenv('INPUT_RDS_NAME', 'staging') # this needs to be fixed so the default is from a function not a static string.
RDS_PR_DB_NAME = os.getenv('INPUT_RDS_PR_NAME', get_rds_pr_db_name(BRANCH_NAME))
FORGE_API_TOKEN = os.getenv('INPUT_FORGE_API_TOKEN')
FORGE_SERVER_ID = os.getenv('INPUT_FORGE_SERVER_ID')
FORGE_ZONE = os.getenv('INPUT_FORGE_ZONE')
FORGE_GIT_URL = os.getenv('INPUT_FORGE_GIT_URL')
FORGE_DOMAIN = os.getenv('INPUT_FORGE_DOMAIN', DEFAULT_SITE_DOMAIN(BRANCH_NAME, FORGE_ZONE))
FORGE_DIRECTORY = os.getenv('INPUT_FORGE_SITE_DIRECTORY', DEFAULT_SITE_DIRECTORY(BRANCH_NAME, FORGE_ZONE))
create_rds_instance(
db_instance_id=RDS_NAME,
master_username=RDS_ROOT_USERNAME,
master_password=RDS_ROOT_PASSWORD,
vpc_id=RDS_VPC_ID,
db_subnet_group_name=RDS_SUBNET_GROUP
)
wait_for_db_instance_available(RDS_NAME)
RDS_HOST = get_rds_endpoint(RDS_NAME)
print(f"RDS instance public endpoint: {RDS_HOST}")
create_database_and_user(
host=RDS_HOST,
user=RDS_ROOT_USERNAME,
password=RDS_ROOT_PASSWORD,
new_db_name=RDS_PR_DB_NAME
)
forge_manage_site(
api_token=FORGE_API_TOKEN,
branch=BRANCH_NAME,
git_url=FORGE_GIT_URL,
server_id=FORGE_SERVER_ID,
domain=FORGE_DOMAIN,
directory=FORGE_DIRECTORY
)
FORGE_ENV_OVERRIDES = {
"APP_URL": f"https://{FORGE_DOMAIN}",
"APP_FE_URL": f"https://{BRANCH_NAME_WEB_SAFE}.app.{FORGE_ZONE}",
"DB_HOST": RDS_HOST,
"DB_DATABASE": RDS_PR_DB_NAME,
"DB_USERNAME": RDS_ROOT_USERNAME,
"DB_PASSWORD": RDS_ROOT_PASSWORD
}
forge_manage_site_env(
api_token=FORGE_API_TOKEN,
server_id=FORGE_SERVER_ID,
site_name=FORGE_DOMAIN,
overrides=FORGE_ENV_OVERRIDES
)
forge_manage_site_ssl(
api_token=FORGE_API_TOKEN,
server_id=FORGE_SERVER_ID,
site_name=FORGE_DOMAIN,
)
forge_manage_site_deployment_script(
api_token=FORGE_API_TOKEN,
server_id=FORGE_SERVER_ID,
site_name=FORGE_DOMAIN
)
deploy_now(
api_token=FORGE_API_TOKEN,
server_id=FORGE_SERVER_ID,
site_name=FORGE_DOMAIN
)