fix CI
This commit is contained in:
@@ -1,16 +1,19 @@
|
|||||||
name: myRPC-CI
|
name: CI
|
||||||
|
run-name: \${{ github.actor }} is running myRPC CI
|
||||||
|
|
||||||
on:
|
on:
|
||||||
push:
|
push:
|
||||||
branches:
|
branches:
|
||||||
\- main
|
\- main
|
||||||
|
\- master
|
||||||
pull\_request:
|
pull\_request:
|
||||||
branches:
|
branches:
|
||||||
\- main
|
\- main
|
||||||
|
\- master
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
build:
|
build:
|
||||||
name: Build and Unit Tests
|
name: Build and Test
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
\- name: Checkout repository
|
\- name: Checkout repository
|
||||||
@@ -19,7 +22,8 @@ uses: actions/checkout\@v3
|
|||||||
- name: Install dependencies
|
- name: Install dependencies
|
||||||
run: |
|
run: |
|
||||||
sudo apt-get update
|
sudo apt-get update
|
||||||
sudo apt-get install -y gcc make libconfig-dev dpkg-dev
|
sudo apt-get install -y gcc make libconfig-dev dpkg-dev ruby ruby-dev build-essential
|
||||||
|
sudo gem install --no-document fpm
|
||||||
|
|
||||||
- name: Build project
|
- name: Build project
|
||||||
run: make all
|
run: make all
|
||||||
@@ -30,61 +34,66 @@ uses: actions/checkout\@v3
|
|||||||
test -x build/myRPC-server
|
test -x build/myRPC-server
|
||||||
echo "Binaries built successfully"
|
echo "Binaries built successfully"
|
||||||
|
|
||||||
- name: Test myRPC-server starts with config
|
- name: Test server startup
|
||||||
run: |
|
run: |
|
||||||
sudo mkdir -p /etc/myRPC
|
sudo mkdir -p /etc/myRPC
|
||||||
printf "port = 9090;\nsocket_type = \"stream\";\n" | sudo tee /etc/myRPC/myRPC.conf
|
printf "port = 9090;\nsocket_type = \"stream\";\n" | sudo tee /etc/myRPC/myRPC.conf
|
||||||
printf "$(whoami)\n" | sudo tee /etc/myRPC/users.conf
|
printf "${{ github.actor }}\n" | sudo tee /etc/myRPC/users.conf
|
||||||
build/myRPC-server &
|
build/myRPC-server &
|
||||||
SERVER_PID=$!
|
pid=$!
|
||||||
sleep 2
|
sleep 2
|
||||||
ps -p $SERVER_PID
|
ps -p $pid
|
||||||
kill $SERVER_PID
|
kill $pid
|
||||||
echo "Server started and responded to ps"
|
echo "Server started successfully"
|
||||||
|
|
||||||
- name: Test myRPC-client can connect
|
- name: Test client-server interaction
|
||||||
run: |
|
run: |
|
||||||
build/myRPC-server &
|
build/myRPC-server &
|
||||||
SERVER_PID=$!
|
pid=$!
|
||||||
sleep 2
|
sleep 2
|
||||||
build/myRPC-client -h 127.0.0.1 -p 9090 -s -c "echo OK" > output.log
|
build/myRPC-client -h 127.0.0.1 -p 9090 -s -c "echo OK" > response.txt
|
||||||
grep -q 'OK' output.log
|
grep -q "OK" response.txt
|
||||||
kill $SERVER_PID
|
kill $pid
|
||||||
echo "Client connected and received OK"
|
echo "Client received OK from server"
|
||||||
|
|
||||||
makefile-lint:
|
lint:
|
||||||
name: Makefile lint
|
name: Makefile Lint
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
\- name: Checkout repository
|
\- name: Checkout repository
|
||||||
uses: actions/checkout\@v3
|
uses: actions/checkout\@v3
|
||||||
\- name: Check Makefile syntax
|
|
||||||
run: make -n all
|
|
||||||
|
|
||||||
clean-target:
|
- name: Check Makefile syntax
|
||||||
name: Test clean target
|
run: make -n all
|
||||||
|
|
||||||
|
clean:
|
||||||
|
name: Clean target test
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
\- name: Checkout repository
|
\- name: Checkout repository
|
||||||
uses: actions/checkout\@v3
|
uses: actions/checkout\@v3
|
||||||
\- name: Build then clean
|
|
||||||
run: |
|
|
||||||
make all
|
|
||||||
make clean
|
|
||||||
test ! -d build || echo "build directory exists"
|
|
||||||
|
|
||||||
deb-package:
|
- name: Test clean
|
||||||
|
run: |
|
||||||
|
make all
|
||||||
|
make clean
|
||||||
|
test ! -d build
|
||||||
|
|
||||||
|
deb:
|
||||||
name: Build deb packages
|
name: Build deb packages
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
\- name: Checkout repository
|
\- name: Checkout repository
|
||||||
uses: actions/checkout\@v3
|
uses: actions/checkout\@v3
|
||||||
\- name: Install fpm and dpkg tools
|
|
||||||
run: |
|
- name: Install packaging tools
|
||||||
sudo apt-get update
|
run: |
|
||||||
sudo apt-get install -y ruby ruby-dev build-essential
|
sudo apt-get update
|
||||||
sudo gem install --no-document fpm
|
sudo apt-get install -y ruby ruby-dev build-essential
|
||||||
\- name: Build packages
|
sudo gem install --no-document fpm
|
||||||
run: make deb
|
|
||||||
\- name: Verify .deb files exist
|
- name: Build deb packages
|
||||||
run: ls \*.deb | tee deb-list.txt
|
run: make deb
|
||||||
|
|
||||||
|
- name: Verify deb files
|
||||||
|
run: ls *.deb | tee deb-list.txt
|
||||||
|
|||||||
Reference in New Issue
Block a user