name: 🔨 Build Test on: pull_request: paths: - '**.go' - '**.mod' workflow_dispatch: jobs: build: name: Test Builds strategy: matrix: os: [ubuntu-latest, windows-latest, macOS-latest] runs-on: ${{ matrix.os }} steps: - name: Check out code uses: actions/checkout@v4 - name: Set up Go uses: projectdiscovery/actions/setup/go@v1 # required for running python code in py-snippet.yaml integration test - name: Set up Python uses: actions/setup-python@v4 with: python-version: '3.10' - name: Verify Go modules run: make verify - name: Build run: go build . working-directory: cmd/nuclei/ - name: Test env: GITHUB_TOKEN: "${{ secrets.GITHUB_TOKEN }}" PDCP_API_KEY: "${{ secrets.PDCP_API_KEY }}" run: go test ./... - name: Integration Tests timeout-minutes: 50 env: GH_ACTION: true GITHUB_TOKEN: "${{ secrets.GITHUB_TOKEN }}" PDCP_API_KEY: "${{ secrets.PDCP_API_KEY }}" run: | chmod +x run.sh bash run.sh ${{ matrix.os }} working-directory: integration_tests/ - name: Race Condition Tests if: ${{ matrix.os != 'windows-latest' }} # known issue: https://github.com/golang/go/issues/46099 run: go run -race . -l ../functional-test/targets.txt -id tech-detect,tls-version working-directory: cmd/nuclei/ - name: Example SDK Simple run: go run . working-directory: examples/simple/ # Temporarily disabled very flaky in github actions # - name: Example SDK Advanced # run: go run . # working-directory: examples/advanced/ - name: Example SDK with speed control run: go run . working-directory: examples/with_speed_control/