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
|
||
|
- 5432: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: 5432
|