-
-
Notifications
You must be signed in to change notification settings - Fork 9
113 lines (101 loc) · 3.23 KB
/
plugins-ci-postgres.yml
File metadata and controls
113 lines (101 loc) · 3.23 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
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
name: Plugin CI - PostgreSQL
on:
workflow_call:
inputs:
auto-merge-exclude:
description: 'A semicolon seperated list of packages that you do not want to be auto-merged.'
required: false
default: 'fastify'
type: string
license-check:
description: 'Check licenses.'
required: false
type: boolean
default: false
license-check-allowed-additional:
description: 'A semicolon seperated list of additional licenses to allow.'
required: false
type: string
default: ''
lint:
description: 'Set to true to run linting scripts.'
required: false
default: false
type: boolean
node-versions:
description: 'A JSON array that specifies the Node.js versions on which the job should run.'
required: false
default: '["20", "22", "24"]'
type: string
jobs:
quality-check:
uses: ./.github/workflows/nested-quality.yml
permissions:
contents: read
secrets: inherit
with:
license-check: ${{ inputs.license-check }}
license-check-allowed-additional: ${{ inputs.license-check-allowed-additional }}
lint: ${{ inputs.lint }}
test:
name: Node.js ${{ matrix.node-version }} - ${{ matrix.db }}
runs-on: ubuntu-latest
permissions:
contents: read
strategy:
matrix:
node-version: ${{ fromJson(inputs.node-versions) }}
db: ['postgres:18-alpine']
services:
postgres:
image: ${{ matrix.db }}
env:
POSTGRES_USER: postgres
POSTGRES_DB: postgres
POSTGRES_PASSWORD: postgres
ports:
- '5432:5432'
options: >-
--health-cmd pg_isready --health-interval 10s --health-timeout 5s
--health-retries 5
steps:
- name: Check out repo
uses: actions/checkout@v6
with:
persist-credentials: false
- name: Setup Node ${{ matrix.node-version }}
uses: actions/setup-node@v6
with:
check-latest: true
node-version: ${{ matrix.node-version }}
- name: Install dependencies
run: npm i
- name: CI environment setup
env:
PGPORT: ${{ job.services.postgres.ports[5432] }}
run: >
npm i node-gyp
sudo apt-get install -yqq libpq-dev postgresql-client
chmod 600 .pgpass
PGPASSFILE=.pgpass psql -h localhost -p "$PGPORT" -d postgres -c 'CREATE TABLE
users(id serial PRIMARY KEY, username VARCHAR (50) NOT NULL);' -U
postgres
- name: Run tests
run: npm test
automerge:
name: Automerge Dependabot PRs
if: >
github.event_name == 'pull_request' &&
github.event.pull_request.head.repo.full_name == github.repository &&
github.event.pull_request.user.login == 'dependabot[bot]'
needs: [quality-check, test]
permissions:
pull-requests: write
contents: write
runs-on: ubuntu-latest
steps:
- uses: fastify/github-action-merge-dependabot@1b2ed42db8f9d81a46bac83adedfc03eb5149dff # v3.11.2
with:
exclude: ${{ inputs.auto-merge-exclude }}
github-token: ${{ secrets.GITHUB_TOKEN }}
target: major