crowdsec/.github/workflows/ci_functests-install.yml
2020-07-31 16:16:23 +02:00

87 lines
2.9 KiB
YAML

name: Hub-CI
on:
push:
branches: [ functional_basic_tests ]
pull_request:
branches: [ functional_basic_tests ]
jobs:
build:
name: Install generated release and perform basic tests
runs-on: ubuntu-latest
steps:
- name: Set up Go 1.13
uses: actions/setup-go@v1
with:
go-version: 1.13
id: go
- name: Check out code into the Go module directory
uses: actions/checkout@v2
- name: Build release
run: BUILD_VERSION=xxx make release
# - name: Cache release directory
# uses: actions/cache@v2
# with:
# path: ./crowdsec-xxx
# key: ${{ runner.os }}-crowdsec-xxx
- name: Install release
run: |
cd crowdsec-xxx
sudo ./wizard.sh --bininstall
sudo cscli update
sudo sed -i 's/api: true/api: false/g' /etc/crowdsec/config/default.yaml
- name: Install collection
run: |
sudo cscli list -a
sudo cscli install parser crowdsecurity/syslog-logs crowdsecurity/sshd-logs crowdsecurity/dateparse-enrich
sudo cscli install scenario crowdsecurity/ssh-bf
- name: Crowdsec Startup check
run: |
sudo crowdsec -c /etc/crowdsec/config/user.yaml -t
- name: Generate fake ssh bf logs
run: |
for i in `seq 1 10` ; do
echo `date '+%b %d %H:%M:%S '`'sd-126005 sshd[12422]: Invalid user netflix from 1.1.1.172 port 35424' >> ssh-bf.log
done;
- name: Process ssh-bf logs in time-machine
run: |
sudo crowdsec -c /etc/crowdsec/config/user.yaml -file ./ssh-bf.log -type syslog
- name: Cscli ban list check
run: |
sudo cscli ban list
sudo cscli ban list -o json | jq -e '.[].iptext == "1.1.1.172"'
sudo cscli ban list --range 1.1.1.0/24 -o json | jq -e '.[].iptext == "1.1.1.172"'
- name: Cscli ban del check
run: |
sudo cscli ban del ip 1.1.1.172
sudo cscli -c /etc/crowdsec/config/user.yaml ban list -o json | jq -e '. == null'
- name: Service start
run: |
sudo rm -f /etc/crowdsec/config/acquis.yaml
touch /tmp/test.log
echo "filename: /tmp/test.log" | sudo tee -a /etc/crowdsec/config/acquis.yaml > /dev/null
echo "labels:" | sudo tee -a /etc/crowdsec/config/acquis.yaml > /dev/null
echo " type: syslog" | sudo tee -a /etc/crowdsec/config/acquis.yaml > /dev/null
sudo systemctl restart crowdsec
- name: Service status check
run: |
sleep 3
sudo cat /var/log/crowdsec.log
sudo systemctl status crowdsec
sudo cscli metrics
- name: Inject logs
run: |
cat ssh-bf.log >> /tmp/test.log
sleep 1
- name: Check results
run: |
sudo cscli ban list
sudo cscli ban list -o json | jq -e '.[].iptext == "1.1.1.172"'
sudo cat /var/log/crowdsec.log
- name: Check metrics
run: |
sudo cscli metrics