This commit is contained in:
gandc 2025-05-16 01:02:10 +03:00
parent f781c9bb6a
commit b9eb254c02
Signed by: gandc
GPG Key ID: 9F77B03D43C42CB4

View File

@ -0,0 +1,99 @@
name: myRPC-CI
on:
push:
branches: \[ main, master ]
pull\_request:
branches: \[ main, master ]
jobs:
build:
name: Build and Unit Tests
runs-on: ubuntu-latest
services:
\# No extra services needed
steps:
\- uses: actions/checkout\@v3
```
- name: Install dependencies
run: |
sudo apt-get update
sudo apt-get install -y gcc make libconfig-dev dpkg-dev
- name: Build project
run: make all
- name: Verify binaries exist
run: |
test -x build/myRPC-client
test -x build/myRPC-server
echo "Binaries built successfully"
- name: Test myRPC-server starts with config
run: |
sudo mkdir -p /etc/myRPC
printf "port = 9090;\nsocket_type = \"stream\";\n" | sudo tee /etc/myRPC/myRPC.conf
printf "$(whoami)\n" | sudo tee /etc/myRPC/users.conf
sudo chmod -R a+r /etc/myRPC
# Run server in background, capturing its PID
build/myRPC-server &
SERVER_PID=$!
sleep 2
ps -p $SERVER_PID
kill $SERVER_PID
echo "Server started and responded to ps"
- name: Test myRPC-client can connect
run: |
# Setup server in background
build/myRPC-server &
SERVER_PID=$!
sleep 2
# Send a simple command
build/myRPC-client -h 127.0.0.1 -p 9090 -s -c "echo OK" > output.log
grep -q 'OK' output.log
kill $SERVER_PID
echo "Client connected and received OK"
```
makefile-lint:
name: Makefile lint
runs-on: ubuntu-latest
steps:
\- uses: actions/checkout\@v3
\- name: Check Makefile syntax
run: make -n all
clean-target:
name: Test clean target
runs-on: ubuntu-latest
steps:
\- uses: actions/checkout\@v3
\- name: Build then clean
run: |
make all
make clean
test ! -d build || echo "build directory exists"
deb-package:
name: Build deb packages
runs-on: ubuntu-latest
steps:
\- uses: actions/checkout\@v3
\- name: Install fpm and dpkg tools
run: |
sudo apt-get update
sudo apt-get install -y ruby ruby-dev build-essential
sudo gem install --no-document fpm
```
- name: Build packages
run: make deb
- name: Verify .deb files exist
run: ls *.deb | tee deb-list.txt
```