Skip to content

Commit

Permalink
Align github action with local development
Browse files Browse the repository at this point in the history
- Build action from a compose file,
bringing the action config and local config closer together
- Add environment variable

closes #59
  • Loading branch information
TangoYankee committed Oct 8, 2024
1 parent c5eec49 commit fc0d6b0
Show file tree
Hide file tree
Showing 6 changed files with 55 additions and 38 deletions.
46 changes: 25 additions & 21 deletions .github/workflows/update-api-database.yml
Original file line number Diff line number Diff line change
Expand Up @@ -20,40 +20,44 @@ on:
options:
- staging
- production
push:
branches:
- ty/53-follow-up

jobs:
update:
environment:
name: ${{ inputs.environment }}
name: staging
env:
DO_SPACES_ACCESS_KEY: ${{ secrets.DO_SPACES_ACCESS_KEY }}
DO_SPACES_ENDPOINT: ${{ secrets.DO_SPACES_ENDPOINT }}
DO_SPACES_SECRET_KEY: ${{ secrets.DO_SPACES_SECRET_KEY }}
FLOW_DATABASE_ENV: ${{ secrets.FLOW_DATABASE_ENV }}
FLOW_DATABASE_HOST: ${{ secrets.FLOW_DATABASE_HOST }}
FLOW_DATABASE_NAME: ${{ secrets.FLOW_DATABASE_NAME }}
FLOW_DATABASE_PASSWORD: ${{ secrets.FLOW_DATABASE_PASSWORD }}
FLOW_DATABASE_PORT: ${{ secrets.FLOW_DATABASE_PORT }}
FLOW_DATABASE_USER: ${{ secrets.FLOW_DATABASE_USER }}
TARGET_DATABASE_HOST: ${{ secrets.TARGET_DATABASE_HOST }}
TARGET_DATABASE_NAME: ${{ secrets.TARGET_DATABASE_NAME }}
TARGET_DATABASE_PASSWORD: ${{ secrets.TARGET_DATABASE_PASSWORD }}
TARGET_DATABASE_PORT: ${{ secrets.TARGET_DATABASE_PORT }}
TARGET_DATABASE_USER: ${{ secrets.TARGET_DATABASE_USER }}

name: Update database
runs-on: ubuntu-latest
services:
postgres:
image: postgis/postgis:15-3.4-alpine
env:
POSTGRES_USER: ${{ secrets.FLOW_DATABASE_USER }}
POSTGRES_PASSWORD: ${{ secrets.FLOW_DATABASE_PASSWORD }}
POSTGRES_DB: ${{ secrets.FLOW_DATABASE_NAME }}
TARGET_DATABASE_USER: ${{ secrets.TARGET_DATABASE_USER }}
TARGET_DATABASE_PASSWORD: ${{ secrets.TARGET_DATABASE_PASSWORD }}
TARGET_DATABASE_NAME: ${{ secrets.TARGET_DATABASE_NAME }}
TARGET_DATABASE_PORT: ${{ secrets.TARGET_DATABASE_PORT }}
TARGET_DATABASE_HOST: ${{ secrets.TARGET_DATABASE_HOST }}
options: >-
--health-cmd pg_isready
--health-interval 10s
--health-timeout 5s
--health-retries 5
ports:
- 5432:5432
steps:
- name: checkout code
uses: actions/checkout@v4
- name: Initialize database service from compose
uses: hoverkraft-tech/[email protected]
with:
compose-file: "compose.ci.yml"
- name: install node
uses: actions/setup-node@v4
with:
node-version: '20.x'
- name: install node dependencies
run: npm ci
- name: run flow
run: BUILD=${{ inputs.build }} npm run flow
run: BUILD=all npm run flow
17 changes: 17 additions & 0 deletions common-services.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
services:
postgis:
build:
context: db/.
environment:
- POSTGRES_USER=${FLOW_DATABASE_USER}
- POSTGRES_PASSWORD=${FLOW_DATABASE_PASSWORD}
- POSTGRES_DB=${FLOW_DATABASE_NAME}
- TARGET_DATABASE_USER=${TARGET_DATABASE_USER}
- TARGET_DATABASE_PASSWORD=${TARGET_DATABASE_PASSWORD}
- TARGET_DATABASE_NAME=${TARGET_DATABASE_NAME}
- TARGET_DATABASE_PORT=${TARGET_DATABASE_PORT}
- TARGET_DATABASE_HOST=${TARGET_DATABASE_HOST}
ports:
- $FLOW_DATABASE_PORT:5432
volumes:
- ./db/pg:/var/lib/postgresql/flow
5 changes: 5 additions & 0 deletions compose.ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
services:
db:
extends:
file: common-services.yml
service: postgis
18 changes: 3 additions & 15 deletions compose.yml
Original file line number Diff line number Diff line change
@@ -1,22 +1,10 @@
services:
db:
build:
context: db/.
environment:
- POSTGRES_USER=${FLOW_DATABASE_USER}
- POSTGRES_PASSWORD=${FLOW_DATABASE_PASSWORD}
- POSTGRES_DB=${FLOW_DATABASE_NAME}
- TARGET_DATABASE_USER=${TARGET_DATABASE_USER}
- TARGET_DATABASE_PASSWORD=${TARGET_DATABASE_PASSWORD}
- TARGET_DATABASE_NAME=${TARGET_DATABASE_NAME}
- TARGET_DATABASE_PORT=${TARGET_DATABASE_PORT}
- TARGET_DATABASE_HOST=${TARGET_DATABASE_HOST}
extends:
file: common-services.yml
service: postgis
networks:
- data
ports:
- "8001:5432"
volumes:
- ./db/pg:/var/lib/postgresql/flow
networks:
data:
name: ae-zoning-api_data
Expand Down
4 changes: 2 additions & 2 deletions db/Dockerfile
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
FROM postgres:15-bookworm

RUN apt update
RUN apt install -y postgresql-15-postgis-3
RUN apt-get update
RUN apt-get install -y postgresql-15-postgis-3

WORKDIR /var/lib/postgresql
3 changes: 3 additions & 0 deletions pg/pg-connector.ts
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,9 @@ const credentials = {
user: process.env.FLOW_DATABASE_USER,
password: process.env.FLOW_DATABASE_PASSWORD,
database: process.env.FLOW_DATABASE_NAME!,
ssl: process.env.FLOW_DATABASE_ENV !== "development" && {
rejectUnauthorized: false,
},
};

export const pgClient = new Client(credentials);
Expand Down

0 comments on commit fc0d6b0

Please sign in to comment.