name: Tests # NOTE(mhayden): Restricting branches prevents jobs from being doubled since # a push to a pull request triggers two events. on: pull_request: branches: - "*" push: branches: - main jobs: lint: name: "🛃 Checks" runs-on: ubuntu-20.04 steps: - name: Set up Go 1.14 uses: actions/setup-go@v1 with: go-version: 1.14 id: go - name: Check out code into the Go module directory uses: actions/checkout@v2 - name: Check that source has been prepared run: | ./tools/prepare-source.sh if [ -n "$(git status --porcelain)" ]; then echo echo "Please include these changes in your branch: " git status -vv exit "1" else exit "0" fi - name: Install golangci-lint run: curl -sfL https://raw.githubusercontent.com/golangci/golangci-lint/master/install.sh| sh -s -- -b $(go env GOPATH)/bin v1.30.0 # This is needed to lint internal/upload/koji package - name: Install kerberos devel package run: sudo apt-get install -y libkrb5-dev - name: Run golangci-lint run: $(go env GOPATH)/bin/golangci-lint run --timeout 5m0s - name: Run unit tests run: go test -race -covermode=atomic -coverprofile=coverage.txt -coverpkg=./... ./... - name: Send coverage to codecov.io run: bash <(curl -s https://codecov.io/bash) - name: Trigger Schutzbot env: EVENT_NAME: ${{ github.event_name }} WEBHOOK_PAYLOAD: ${{ toJSON(github.event) }} SQS_REGION: us-east-1 SQS_QUEUE_URL: "https://sqs.us-east-1.amazonaws.com/933752197999/schutzbot_webhook_sqs-staging" run: | #!/bin/bash pip3 install boto3 botocore schutzbot/send_webhook.py shellcheck: name: "🐚 Shellcheck" runs-on: ubuntu-20.04 steps: - uses: actions/checkout@v2 - name: Run ShellCheck uses: ludeeus/action-shellcheck@0.5.0 with: ignore: vendor # We don't want to fix the code in vendored dependencies env: SHELLCHECK_OPTS: -e SC1091 -e SC2002 # don't check /etc/os-release sourcing and allow useless cats to live inside our codebase rpmlint: name: "📦 RPMlint" runs-on: ubuntu-20.04 container: registry.fedoraproject.org/fedora:33 steps: - name: Install dependencies run: sudo dnf install -y rpmlint rpm-build make git-core - uses: actions/checkout@v2 - name: Create SRPM run: make srpm - name: Run rpmlint run: rpmlint rpmbuild/SRPMS/*