chorus/.github/workflows/rust.yml

50 lines
1.2 KiB
YAML

name: Rust
on:
push:
branches: [ "main" ]
pull_request:
branches: [ "main" ]
env:
CARGO_TERM_COLOR: always
jobs:
build_and_test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Set up Node.js
run: |
curl -fsSL https://deb.nodesource.com/setup_16.x | sudo -E bash -
sudo apt-get install -y nodejs
- name: Install dependencies
run: |
sudo apt-get update
sudo apt-get install -y git python3 build-essential
- name: Clone spacebarchat-server
run: git clone https://github.com/polyphony-chat/spacebarchat-server.git
- name: Install Node packages
run: npm install
working-directory: ./server
- name: Build and generate schema
run: npm run setup
working-directory: ./server
- name: Start the server
run: |
npm run start &
echo $! > server_pid.txt
working-directory: ./server
- name: Wait for server to start
run: sleep 10
- name: Build
run: cargo build --verbose
- name: Run tests
run: cargo test --verbose
- name: Terminate the server
run: |
kill $(cat server_pid.txt)
rm server_pid.txt