Skip to content
This repository was archived by the owner on Feb 28, 2024. It is now read-only.

Commit 5d442ea

Browse files
committed
deploy on fly.io
1 parent 11f0103 commit 5d442ea

File tree

4 files changed

+163
-9
lines changed

4 files changed

+163
-9
lines changed

.github/workflows/containers.yml renamed to .github/workflows/deploy.yml

Lines changed: 25 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,12 @@
1-
name: Docker
1+
name: Deploy
22

33
on:
4-
push:
5-
branches:
6-
- "**"
7-
tags:
8-
- "v*.*.*"
4+
- push
95

106
jobs:
11-
applications:
12-
name: Applications
13-
runs-on: ubuntu-20.04
7+
containers:
8+
name: Containers
9+
runs-on: ubuntu-22.04
1410
strategy:
1511
fail-fast: false
1612
matrix:
@@ -77,3 +73,23 @@ jobs:
7773
run: |
7874
rm -rf /tmp/.buildx-cache
7975
mv /tmp/.buildx-cache-new /tmp/.buildx-cache
76+
77+
deploy:
78+
name: Deploy
79+
runs-on: ubuntu-22.04
80+
needs: [containers]
81+
if: github.ref == 'refs/heads/main'
82+
strategy:
83+
fail-fast: false
84+
matrix:
85+
app:
86+
- api
87+
- mjml
88+
- tasks
89+
steps:
90+
- uses: actions/checkout@v3
91+
- uses: superfly/flyctl-actions/setup-flyctl@master
92+
93+
- run: flyctl deploy --remote-only -c fly.${{ matrix.app }}.toml
94+
env:
95+
FLY_API_TOKEN: ${{ secrets.FLY_TOKEN }}

fly.api.toml

Lines changed: 59 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,59 @@
1+
# fly.toml app configuration file generated for application-portal-api on 2023-04-19T15:16:22-07:00
2+
#
3+
# See https://fly.io/docs/reference/configuration/ for information about how to use this file.
4+
#
5+
6+
app = "application-portal-api"
7+
primary_region = "yyz"
8+
9+
[build]
10+
image = "public.ecr.aws/wafflehacks/application-portal-api:main"
11+
12+
[deploy]
13+
release_command = "migrate"
14+
strategy = "rolling"
15+
16+
[env]
17+
OTEL_ENABLE = "yes"
18+
OTEL_DEBUG = "no"
19+
OTEL_SERVICE_NAME = "application-portal/api"
20+
OTEL_EXPORTER_OTLP_ENDPOINT = "https://api.honeycomb.io"
21+
22+
NATS_URL = "nats://wafflehacks-nats.internal:4222"
23+
24+
MJML_API = "http://application-portal-mjml.internal:8000"
25+
26+
APP_URL = "https://apply.wafflehacks.org"
27+
PUBLIC_URL = "https://api.wafflehacks.org"
28+
29+
COOKIE_DOMAIN = "wafflehacks.org"
30+
COOKIE_SECURE = "true"
31+
32+
[[services]]
33+
internal_port = 8000
34+
processes = ["app"]
35+
protocol = "tcp"
36+
37+
[services.concurrency]
38+
hard_limit = 250
39+
soft_limit = 200
40+
type = "requests"
41+
42+
[[services.ports]]
43+
force_https = true
44+
handlers = ["http"]
45+
port = 80
46+
47+
[[services.ports]]
48+
handlers = ["tls", "http"]
49+
port = 443
50+
51+
[[services.http_checks]]
52+
method = "get"
53+
path = "/health"
54+
protocol = "http"
55+
56+
grace_period = "20s"
57+
interval = "15s"
58+
restart_limit = 0
59+
timeout = "3s"

fly.mjml.toml

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
# fly.toml app configuration file generated for application-portal-mjml on 2023-04-19T16:11:33-07:00
2+
#
3+
# See https://fly.io/docs/reference/configuration/ for information about how to use this file.
4+
#
5+
6+
app = "application-portal-mjml"
7+
primary_region = "yyz"
8+
9+
[build]
10+
image = "public.ecr.aws/wafflehacks/application-portal-mjml:main"
11+
12+
[deploy]
13+
strategy = "rolling"
14+
15+
[env]
16+
HOST = "0.0.0.0"
17+
PORT = "8000"
18+
19+
OTEL_ENABLE = "yes"
20+
OTEL_DEBUG = "no"
21+
OTEL_SERVICE_NAME = "application-portal/mjml"
22+
OTEL_EXPORTER_OTLP_ENDPOINT = "https://api.honeycomb.io"
23+
24+
[checks]
25+
[checks.alive]
26+
type = "http"
27+
port = 8000
28+
method = "get"
29+
path = "/health"
30+
protocol = "http"
31+
32+
grace_period = "15s"
33+
interval = "15s"
34+
restart_limit = 0
35+
timeout = "3s"

fly.tasks.toml

Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
# fly.toml app configuration file generated for application-portal-tasks on 2023-04-20T17:00:04-07:00
2+
#
3+
# See https://fly.io/docs/reference/configuration/ for information about how to use this file.
4+
#
5+
6+
app = "application-portal-tasks"
7+
primary_region = "yyz"
8+
9+
[build]
10+
image = "public.ecr.aws/wafflehacks/application-portal-tasks:main"
11+
12+
[deploy]
13+
strategy = "rolling"
14+
15+
[env]
16+
LOG_LEVEL = "INFO"
17+
18+
NATS_URL = "nats://wafflehacks-nats.internal:4222"
19+
20+
MAILER_API = "http://wafflehacks-mailer.internal:8000"
21+
22+
SENDER = "[email protected]"
23+
REPLY_TO = "[email protected]"
24+
25+
HEALTHCHECK_HOST = "0.0.0.0"
26+
HEALTHCHECK_PORT = "8000"
27+
28+
OTEL_ENABLE = "yes"
29+
OTEL_DEBUG = "no"
30+
OTEL_SERVICE_NAME = "application-portal/tasks"
31+
OTEL_EXPORTER_OTLP_ENDPOINT = "https://api.honeycomb.io"
32+
33+
[checks]
34+
[checks.alive]
35+
type = "http"
36+
port = 8000
37+
method = "get"
38+
path = "/health"
39+
protocol = "http"
40+
41+
grace_period = "10s"
42+
interval = "15s"
43+
restart_limit = 0
44+
timeout = "3s"

0 commit comments

Comments
 (0)