Skip to content

Commit

Permalink
Feat(CI): Check starting the app (#229)
Browse files Browse the repository at this point in the history
* Try to start an app on CI

* Setup db in Start test

* Try fixing db credentials:

* Try changing DB HOST

* Try changing DB HOST

* Grant permission to postgres user

* Grant permission to postgres user

* Change permissions

* Change permissions to db

* Define config to use

* Update db credentials

* Give db all permisions for test

* Debugging

* Restart postgresql in CI

* Add updating db address in config during runtime

* Add changing bd user name to runner

* Switch to postgres user

* Create runner user in postgres

* Try to set up db another way

* Remove redundant step

* Yet another try to set up db

* Revert some changes

* Add timeout to the step

* Add checking app status

* Try to break the app

* Fix the app

* Check if app is healthy or not
  • Loading branch information
GoldenJaden authored Mar 25, 2024
1 parent 4325330 commit 45818be
Show file tree
Hide file tree
Showing 2 changed files with 66 additions and 32 deletions.
66 changes: 66 additions & 0 deletions .github/workflows/run-build-and-start-check.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,66 @@
name: Build and start

on:
push:
branches:
- 'main'
tags:
- 'v*'

pull_request:
types: [opened, synchronize, reopened]

jobs:
build-and-start:
services:
postgres:
image: postgres
env:
POSTGRES_PASSWORD: postgres
POSTGRES_USER: codex
POSTGRES_DB: notes
ports:
- 5432:5432
options: >-
--health-cmd pg_isready
--health-interval 10s
--health-timeout 5s
--health-retries 5
name: Build and start the app
runs-on: ubuntu-22.04
steps:
- name: Checkout Repository
uses: actions/checkout@v3

- name: Change database address
run: |
sed -i "s/@postgres/@localhost/" app-config.yaml
- name: Setup node
uses: actions/setup-node@v3
with:
node-version: 20

- name: Install dependencies
run: yarn install

- name: Build
run: yarn build

# Start an app in the background
- name: Start
run: node dist/index.js -c app-config.yaml &

- name: Check if the app is running
run: |
sleep 5
response=$(curl -s http://localhost:9090/health)
echo "$response"
message=$(echo "$response" | jq -r '.message')
if [ "$message" = "ok" ]; then
echo "Application is healthy"
else
echo "Application is not healthy"
exit 1
fi
32 changes: 0 additions & 32 deletions .github/workflows/run-build-check.yml

This file was deleted.

0 comments on commit 45818be

Please sign in to comment.