name: Clixon CI on: push: branches: - master - test-actions pull_request: branches: [ master ] jobs: ubuntu-build: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 # 1) checkout and compile natively (no test) - name: install cligen run: (git clone https://github.com/clicon/cligen.git && cd cligen && ./configure && make && sudo make install) - name: run apt update run: sudo apt update - name: install dependencies run: sudo apt install -y libssl-dev libnghttp2-dev - name: configure run: ./configure - name: make run: make -j10 - name: make install run: sudo make install install-include - name: make example run: (cd example; make) - name: install example run: (cd example; sudo make install) ubuntu-build-restconf-fcgi: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 # 1) checkout and compile natively (no test) - name: install cligen run: (git clone https://github.com/clicon/cligen.git && cd cligen && ./configure && make && sudo make install) - name: install dependencies run: sudo apt install -y nginx - name: install fcgi run: (git clone https://github.com/FastCGI-Archives/fcgi2 && cd fcgi2 && ./autogen.sh && rm -rf .git && ./configure --prefix=/usr; make; sudo make install) - name: configure run: ./configure --with-restconf=fcgi - name: make run: make -j10 - name: make install run: sudo make install install-include - name: make example run: (cd example; make) - name: install example run: (cd example; sudo make install) docker-alpine-test-1: runs-on: ubuntu-latest defaults: run: working-directory: ./docker/test steps: - uses: actions/checkout@v4 # 2) Inline of make test, but without configure - name: in-line clone run: git clone file://$(realpath ../..) - name: openconfig run: mkdir -p openconfig; cd openconfig ; git clone https://github.com/openconfig/public - name: yangmodels1 run: mkdir -p yang/standard - name: yangmodels2 run: (cd yang; git init;) - name: yangmodels3 run: (cd yang; git remote add -f origin https://github.com/YangModels/yang) - name: yangmodels4 run: (cd yang; git config core.sparseCheckout true) - name: yangmodels5 run: (echo "standard/" >> yang/.git/info/sparse-checkout; echo "experimental/" >> yang/.git/info/sparse-checkout) - name: yangmodels6 run: (cd yang; git pull origin main) - name: make docker run: sudo docker build -f Dockerfile.native -t clixon/clixon-test . - name: start container run: ./start.sh - name: run test a-m,p run: sudo docker exec -t clixon-test bash -c 'cd /usr/local/bin/test && detail=true pattern="test_a*.sh test_c*.sh test_d*.sh test_f*.sh test_h*.sh test_i*.sh test_j*.sh test_l*.sh test_m*.sh test_o*.sh test_x*.sh test_y*.sh" ./sum.sh' docker-alpine-test-2: runs-on: ubuntu-latest defaults: run: working-directory: ./docker/test steps: - uses: actions/checkout@v4 # 2) Inline of make test, but without configure - name: in-line clone run: git clone file://$(realpath ../..) - name: openconfig run: mkdir -p openconfig; cd openconfig ; git clone https://github.com/openconfig/public - name: yangmodels1 run: mkdir -p yang/standard - name: yangmodels2 run: (cd yang; git init;) - name: yangmodels3 run: (cd yang; git remote add -f origin https://github.com/YangModels/yang) - name: yangmodels4 run: (cd yang; git config core.sparseCheckout true) - name: yangmodels5 run: (echo "standard/" >> yang/.git/info/sparse-checkout; echo "experimental/" >> yang/.git/info/sparse-checkout) - name: yangmodels6 run: (cd yang; git pull origin main) - name: make docker run: sudo docker build -f Dockerfile.native -t clixon/clixon-test . - name: start container run: ./start.sh - name: run test n-o run: sudo docker exec -t clixon-test bash -c 'cd /usr/local/bin/test && detail=true pattern="test_n*.sh test_p*.sh" ./sum.sh' docker-alpine-test-3: runs-on: ubuntu-latest defaults: run: working-directory: ./docker/test steps: - uses: actions/checkout@v4 # 2) Inline of make test, but without configure - name: in-line clone run: git clone file://$(realpath ../..) - name: openconfig run: mkdir -p openconfig; cd openconfig ; git clone https://github.com/openconfig/public - name: yangmodels1 run: mkdir -p yang/standard - name: yangmodels2 run: (cd yang; git init;) - name: yangmodels3 run: (cd yang; git remote add -f origin https://github.com/YangModels/yang) - name: yangmodels4 run: (cd yang; git config core.sparseCheckout true) - name: yangmodels5 run: (echo "standard/" >> yang/.git/info/sparse-checkout; echo "experimental/" >> yang/.git/info/sparse-checkout) - name: yangmodels6 run: (cd yang; git pull origin main) - name: make docker run: sudo docker build -f Dockerfile.native -t clixon/clixon-test . - name: start container run: ./start.sh - name: run test r-y run: sudo docker exec -t clixon-test bash -c 'cd /usr/local/bin/test && detail=true pattern="test_r*.sh test_s*.sh test_t*.sh test_u*.sh test_w*.sh" ./sum.sh' docker-alpine-test-fcgi-r: runs-on: ubuntu-latest defaults: run: working-directory: ./docker/test steps: - uses: actions/checkout@v4 # 2) Inline of make test, but without configure - name: in-line clone run: git clone file://$(realpath ../..) - name: openconfig run: mkdir -p openconfig; cd openconfig ; git clone https://github.com/openconfig/public - name: yangmodels1 run: mkdir -p yang/standard - name: yangmodels2 run: (cd yang; git init;) - name: yangmodels3 run: (cd yang; git remote add -f origin https://github.com/YangModels/yang) - name: yangmodels4 run: (cd yang; git config core.sparseCheckout true) - name: yangmodels5 run: (echo "standard/" >> yang/.git/info/sparse-checkout; echo "experimental/" >> yang/.git/info/sparse-checkout) - name: yangmodels6 run: (cd yang; git pull origin main) - name: make docker fcgi run: sudo docker build -f Dockerfile.fcgi -t clixon/clixon-test . - name: start container run: ./start.sh - name: run test r-y run: sudo docker exec -t clixon-test bash -c 'cd /usr/local/bin/test && detail=true pattern="test_r*.sh" ./sum.sh'