-
Notifications
You must be signed in to change notification settings - Fork 5
46 lines (38 loc) · 1.32 KB
/
prod-boot.yml
File metadata and controls
46 lines (38 loc) · 1.32 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
name: Prod Boot
on:
push:
branches: [main]
pull_request:
branches: [main]
jobs:
prod-boot:
runs-on: ubuntu-latest
timeout-minutes: 25
steps:
- uses: actions/checkout@v4
- name: Prepare deploy env file
run: |
cp deploy/.env.example deploy/.env
# Override secrets/SSL for CI boot
ruby -e "require 'securerandom'; puts \"SECRET_KEY_BASE=#{SecureRandom.hex(64)}\"" >> deploy/.env
echo "FORCE_SSL=false" >> deploy/.env
echo "APP_HOST=localhost" >> deploy/.env
- name: Start database
run: docker compose -f deploy/docker-compose.yml up -d db
- name: Prepare database (migrations)
run: docker compose -f deploy/docker-compose.yml run --rm web bin/rails db:prepare
- name: Start web
run: docker compose -f deploy/docker-compose.yml up -d web
- name: Verify web healthcheck
run: |
for i in {1..30}; do
if docker compose -f deploy/docker-compose.yml exec web sh -lc "curl -fs http://localhost:3000/up"; then
exit 0
fi
sleep 5
done
docker compose -f deploy/docker-compose.yml logs --tail=200 web db
exit 1
- name: Teardown
if: always()
run: docker compose -f deploy/docker-compose.yml down -v