49 lines
1.6 KiB
YAML
49 lines
1.6 KiB
YAML
name: PostgreSQL Service Example
|
|
on: push
|
|
|
|
jobs:
|
|
# Label of the runner job
|
|
runner-job:
|
|
# You must use a Linux environment when using service containers or container jobs
|
|
runs-on: ubuntu-latest
|
|
|
|
# Service containers to run with `runner-job`
|
|
services:
|
|
# Label used to access the service container
|
|
postgres:
|
|
# Docker Hub image
|
|
image: postgres
|
|
# Provide the password for postgres
|
|
env:
|
|
POSTGRES_PASSWORD: postgres
|
|
# Set health checks to wait until postgres has started
|
|
options: >-
|
|
--health-cmd pg_isready
|
|
--health-interval 10s
|
|
--health-timeout 5s
|
|
--health-retries 5
|
|
ports:
|
|
# Maps tcp port 5432 on service container to the host
|
|
- 5442:5432
|
|
|
|
steps:
|
|
# Downloads a copy of the code in your repository before running CI tests
|
|
- name: Check out repository code
|
|
uses: actions/checkout@v4
|
|
|
|
# Performs a clean installation of all dependencies in the `package.json` file
|
|
# For more information, see https://docs.npmjs.com/cli/ci.html
|
|
- name: Install dependencies
|
|
run: npm ci
|
|
|
|
- name: Connect to PostgreSQL
|
|
# Runs a script that creates a PostgreSQL table, populates
|
|
# the table with data, and then retrieves the data
|
|
run: node client.js
|
|
# Environment variables used by the `client.js` script to create
|
|
# a new PostgreSQL table.
|
|
env:
|
|
# The hostname used to communicate with the PostgreSQL service container
|
|
POSTGRES_HOST: localhost
|
|
# The default PostgreSQL port
|
|
POSTGRES_PORT: 5442 |