110 lines
2.7 KiB
YAML
110 lines
2.7 KiB
YAML
name: DRB Build Tests
|
|
|
|
on:
|
|
pull_request:
|
|
branches:
|
|
- master
|
|
push:
|
|
branches:
|
|
- master
|
|
|
|
env:
|
|
NODE_ENV: development
|
|
MONGO_INITDB_ROOT_USERNAME: admin
|
|
MONGO_INITDB_ROOT_PASSWORD: admin
|
|
MONGO_INITDB_DATABASE: drb
|
|
SERVER_PORT: 3000
|
|
MONGO_URL: "mongodb://mongodb:27017/drb"
|
|
DISCORD_TOKEN: ${{ secrets.DISCORD_TOKEN }}
|
|
TEST_GUILD_ID: ${{ secrets.TEST_GUILD_ID }}
|
|
TEST_CLIENT_TOKEN: ${{ secrets.TEST_CLIENT_TOKEN }}
|
|
TEST_CHANNEL_ID: ${{ secrets.TEST_CHANNEL_ID }}
|
|
TEST_SYSTEM: ${{ secrets.TEST_SYSTEM }}
|
|
EXPECTED_CLIENT_ID: ${{ secrets.TEST_CLIENT_ID }}
|
|
EXPECTED_USERNAME: ${{ secrets.EXPECTED_USERNAME }}
|
|
PDAB_PORT: ${{ vars.PDAB_PORT }}
|
|
|
|
jobs:
|
|
build:
|
|
runs-on: ubuntu-latest
|
|
|
|
steps:
|
|
- name: Checkout code
|
|
uses: actions/checkout@v4
|
|
|
|
- name: Set up Docker
|
|
uses: docker/setup-buildx-action@v1
|
|
|
|
- name: Build Docker image and run container
|
|
working-directory: "./server"
|
|
run: make clean && make build && make run
|
|
|
|
- name: Wait for server to start
|
|
run: sleep 10
|
|
|
|
- name: Check open docker containers
|
|
run: docker ps
|
|
|
|
- name: Print IFConfig
|
|
run: ip addr
|
|
|
|
- name: Test server accessibility
|
|
run: curl -v http://localhost:3000
|
|
|
|
- name: Stop Docker container
|
|
run: docker stop drb
|
|
|
|
drb_build_and_test:
|
|
runs-on: ubuntu-latest
|
|
|
|
services:
|
|
mongodb:
|
|
image: mongo:latest
|
|
ports:
|
|
- 27017:27017
|
|
options: >-
|
|
--health-cmd mongo
|
|
--health-interval 10s
|
|
--health-timeout 5s
|
|
--health-retries 5
|
|
|
|
steps:
|
|
- name: Checkout code
|
|
uses: actions/checkout@v4
|
|
|
|
- name: Setup Node.js
|
|
uses: actions/setup-node@v4
|
|
with:
|
|
node-version: '20'
|
|
|
|
- name: Remove package-lock.json (Server)
|
|
working-directory: "./server"
|
|
run: rm package-lock.json
|
|
|
|
- name: Install Node-GYP (Server)
|
|
working-directory: "./server"
|
|
run: npm install -g node-gyp
|
|
|
|
- name: Install dependencies (Server)
|
|
working-directory: "./server"
|
|
run: npm install
|
|
|
|
- name: Remove package-lock.json (Client)
|
|
working-directory: "./client"
|
|
run: rm package-lock.json
|
|
|
|
- name: Install dependencies (Client)
|
|
working-directory: "./client"
|
|
run: npm install
|
|
|
|
- run: echo "Node has finished installing dependencies"
|
|
|
|
- name: Run Server tests
|
|
working-directory: "./server"
|
|
run: npm test
|
|
|
|
- name: Run Client tests
|
|
working-directory: "./client"
|
|
run: npm test
|
|
|
|
- run: echo "Completed the DRB tests" |