summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRaphael <mail@raphaelkabo.com>2023-05-12 23:44:37 +0100
committerGitHub <noreply@github.com>2023-05-12 23:44:37 +0100
commitffc4241e46aa5204d02a64c279ea58e01f1177ae (patch)
tree9814a56b05c5944d03559f4946f3cc2c4d75bb1f
parent67cf89fd0cfdf56c7e6d6d9bdf93d95d679ce2a1 (diff)
parent090a44df57cec84e460462f0ae2db7fb4f87a7e9 (diff)
Merge pull request #96 from lowercasename/github-actions
Add CI workflow
-rw-r--r--.github/workflows/ci.yaml36
-rw-r--r--package.json3
-rwxr-xr-xscripts/docker-test.sh (renamed from test.sh)5
3 files changed, 43 insertions, 1 deletions
diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml
new file mode 100644
index 0000000..882c2c9
--- /dev/null
+++ b/.github/workflows/ci.yaml
@@ -0,0 +1,36 @@
+name: Build test
+on:
+ pull_request:
+ workflow_dispatch:
+ push:
+ branches:
+ - main
+
+jobs:
+ build:
+ runs-on: ubuntu-latest
+ steps:
+ - uses: actions/checkout@v3
+ - uses: pnpm/action-setup@v2
+ with:
+ version: 8
+ - uses: actions/setup-node@v3
+ with:
+ node-version-file: ".nvmrc"
+ cache: "pnpm"
+ cache-dependency-path: "pnpm-lock.yaml"
+ - name: Install dependencies
+ run: pnpm install
+ - name: Set up config files
+ run: |
+ cp src/config/api-example.js src/config/api.js
+ cp src/config/database-example.js src/config/database.js
+ cp src/config/domain-example.js src/config/domain.js
+ - name: Build
+ run: pnpm build
+ continue-on-error: true
+ - name: Start and test
+ run: |
+ pnpm start &
+ sleep 5
+ curl -sSf http://localhost:3000
diff --git a/package.json b/package.json
index d765c0e..a00a53a 100644
--- a/package.json
+++ b/package.json
@@ -6,7 +6,8 @@
"scripts": {
"build": "tsc",
"start": "node dist/start.js",
- "dev": "nodemon -e ts,js --watch src --exec \"pnpm run build ; pnpm run start\""
+ "dev": "nodemon -e ts,js --watch src --exec \"pnpm run build ; pnpm run start\"",
+ "test": "./test.sh"
},
"engines": {
"node": ">=16.16.0"
diff --git a/test.sh b/scripts/docker-test.sh
index 6626437..1cba254 100755
--- a/test.sh
+++ b/scripts/docker-test.sh
@@ -1,5 +1,10 @@
#!/usr/bin/env bash
+# A Docker-based test script. It builds the Docker image, starts the container,
+# and then waits for the server to be ready. Once the server is ready, it
+# makes a request to the server and then kills the container. A 200 response
+# code is expected.
+
set -eux -o pipefail
cleanup() {