diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml new file mode 100644 index 0000000..9c22a4d --- /dev/null +++ b/.github/workflows/ci.yml @@ -0,0 +1,48 @@ +name: CI + +on: + pull_request: + push: + branches: [ master ] + workflow_dispatch: + +jobs: + test: + name: Run Tests & Build + runs-on: ubuntu-latest + + services: + mongodb: + image: mongo:6.0 + ports: + - 27017:27017 + options: >- + --health-cmd="mongosh --eval 'db.adminCommand(\"ping\")'" + --health-interval=10s + --health-timeout=5s + --health-retries=5 + + env: + MONGO_URL: mongodb://127.0.0.1:27017/worlddriven_test + + steps: + - name: Checkout repository + uses: actions/checkout@v4 + + - name: Setup Node.js + uses: actions/setup-node@v4 + with: + node-version: '20' + cache: 'npm' + + - name: Install dependencies + run: npm install + + - name: Auto format with Prettier + run: npm run format + + - name: Run tests + run: npm test + + - name: Build project + run: npm run build diff --git a/package.json b/package.json index b800abc..022557f 100644 --- a/package.json +++ b/package.json @@ -25,7 +25,8 @@ "lint": "eslint . --report-unused-disable-directives --max-warnings 0", "lint:frontend": "eslint static/js --config frontend.eslint.config.cjs --report-unused-disable-directives --max-warnings 0", "start": "node src/index.js", - "test": "npm run check && sort-package-json package.json --check && mdspell --en-us --ignore-numbers --report \"*.md\" && write-good --no-adverb README.md CONTRIBUTING.md" + "test": "npm run check && sort-package-json package.json --check && mdspell --en-us --ignore-numbers --report \"*.md\" && write-good --no-adverb README.md CONTRIBUTING.md", + "format": "prettier --write ." }, "dependencies": { "connect-mongo": "5.1.0",