Blame .github/workflows/tests.yml

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