name: Hub tests on: workflow_call: secrets: GIST_BADGES_SECRET: required: true GIST_BADGES_ID: required: true jobs: build: name: "Build + tests" runs-on: ubuntu-latest timeout-minutes: 20 steps: - name: "Force machineid" run: | sudo chmod +w /etc/machine-id echo githubciXXXXXXXXXXXXXXXXXXXXXXXX | sudo tee /etc/machine-id - name: "Set up Go 1.17" uses: actions/setup-go@v3 with: go-version: 1.17 id: go - name: "Clone CrowdSec" uses: actions/checkout@v3 with: fetch-depth: 0 submodules: true - name: "Install bats dependencies" run: | sudo apt install -y -qq build-essential daemonize jq netcat-openbsd go install github.com/mikefarah/yq/v4@latest go install github.com/cloudflare/cfssl/cmd/cfssl@latest go install github.com/cloudflare/cfssl/cmd/cfssljson@latest sudo cp -u ~/go/bin/yq /usr/local/bin/ sudo cp -u ~/go/bin/cfssl /usr/local/bin sudo cp -u ~/go/bin/cfssljson /usr/local/bin - name: "Build crowdsec and fixture" run: make bats-clean bats-build bats-fixture - name: "Run hub tests" run: make bats-test-hub - name: "Collect hub coverage" run: ./tests/collect-hub-coverage >> $GITHUB_ENV - name: "Create Parsers badge" uses: schneegans/dynamic-badges-action@v1.1.0 if: ${{ github.ref == 'refs/heads/master' }} with: auth: ${{ secrets.GIST_BADGES_SECRET }} gistID: ${{ secrets.GIST_BADGES_ID }} filename: crowdsec_parsers_badge.json label: Hub Parsers message: ${{ env.PARSERS_COV }} color: ${{ env.SCENARIO_BADGE_COLOR }} - name: "Create Scenarios badge" uses: schneegans/dynamic-badges-action@v1.1.0 if: ${{ github.ref == 'refs/heads/master' }} with: auth: ${{ secrets.GIST_BADGES_SECRET }} gistID: ${{ secrets.GIST_BADGES_ID }} filename: crowdsec_scenarios_badge.json label: Hub Scenarios message: ${{ env.SCENARIOS_COV }} color: ${{ env.SCENARIO_BADGE_COLOR }}