Skip to content

Commit

Permalink
Continuous integration via Github Actions (#2475)
Browse files Browse the repository at this point in the history
  • Loading branch information
cqnykamp authored Aug 15, 2024
1 parent 6156123 commit 26eac70
Show file tree
Hide file tree
Showing 13 changed files with 2,485 additions and 552 deletions.
48 changes: 48 additions & 0 deletions .github/workflows/client.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
name: Client CI
on:
push:
branches: main
pull_request:
branches: main
jobs:
build-client:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: 20
- name: Npm clean install
run: npm ci
working-directory: ./client
- name: Build
run: npm run build
working-directory: ./client

lint-client:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: 20
- name: Npm clean install
run: npm ci
working-directory: ./client
- name: Lint
run: npx eslint
working-directory: ./client

prettier-client:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: 20
- name: Npm clean install
run: npm ci
working-directory: ./client
- name: Prettier
run: npx prettier . --check
working-directory: ./client
77 changes: 77 additions & 0 deletions .github/workflows/server.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,77 @@
name: Server CI
on:
push:
branches: main
pull_request:
branches: main
jobs:
build-server:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: 20
- name: Npm clean install
run: npm ci
working-directory: ./server
- name: Build
run: npm run build
working-directory: ./server

lint-server:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: 20
- name: Npm clean install
run: npm ci
working-directory: ./server
- name: Lint
run: npx eslint
working-directory: ./server

prettier-server:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: 20
- name: Npm clean install
run: npm ci
working-directory: ./server
- name: Prettier
run: npx prettier . --check
working-directory: ./server

test-server:
runs-on: ubuntu-latest
env:
PORT: 3306
DATABASE_URL: mysql://root:root@localhost:3306/db
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Setup Node
uses: actions/setup-node@v4
with:
node-version: 20
- name: Start MySQL
run: |
sudo /etc/init.d/mysql start
mysql -e "CREATE DATABASE IF NOT EXISTS db;" -uroot -proot
- name: Npm clean install
run: npm ci
working-directory: ./server
- name: Apply migrations
run: npx prisma migrate dev
working-directory: ./server
- name: Seed database
run: npx prisma db seed
working-directory: ./server
- name: Run tests
run: npm run test
working-directory: ./server
3 changes: 3 additions & 0 deletions client/.prettierignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
dist/
dist_local/
multi-reporter-config.json
1 change: 1 addition & 0 deletions server/.prettierignore
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
dist/
27 changes: 27 additions & 0 deletions server/eslint.config.mjs
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
import globals from "globals";
import pluginJs from "@eslint/js";
import tseslint from "typescript-eslint";

export default [
{ files: ["**.{js,mjs,cjs,ts,jsx,tsx}"] },
{ ignores: ["dist/"] },
{ languageOptions: { globals: { ...globals.node } } },
pluginJs.configs.recommended,
...tseslint.configs.recommended,
{
rules: {
"@typescript-eslint/no-unused-vars": [
"error",
{
args: "all",
argsIgnorePattern: "^_",
caughtErrors: "all",
caughtErrorsIgnorePattern: "^_",
destructuredArrayIgnorePattern: "^_",
varsIgnorePattern: "^_",
ignoreRestSiblings: true,
},
],
},
},
];
Loading

0 comments on commit 26eac70

Please sign in to comment.