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 63bb0d
      - master
Packit 63bb0d
Packit 63bb0d
jobs:
Packit 63bb0d
  lint:
Packit 63bb0d
    name: "🛃 Checks"
Packit 63bb0d
    runs-on: ubuntu-latest
Packit 63bb0d
    steps:
Packit 63bb0d
Packit 63bb0d
      - name: Set up Go 1.12
Packit 63bb0d
        uses: actions/setup-go@v1
Packit 63bb0d
        with:
Packit 63bb0d
          go-version: 1.12
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 63bb0d
        run: curl -sfL https://raw.githubusercontent.com/golangci/golangci-lint/master/install.sh| sh -s -- -b $(go env GOPATH)/bin v1.23.7
Packit 63bb0d
Packit 63bb0d
      - name: Run golangci-lint
Packit 63bb0d
        run: $(go env GOPATH)/bin/golangci-lint run
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 63bb0d
  koji:
Packit 63bb0d
    name: "麹 Koji test"
Packit 63bb0d
    runs-on: ubuntu-latest
Packit 63bb0d
    services:
Packit 63bb0d
      postgres:
Packit 63bb0d
        image: docker.io/library/postgres:12-alpine
Packit 63bb0d
        env:
Packit 63bb0d
          POSTGRES_USER:     koji
Packit 63bb0d
          POSTGRES_PASSWORD: kojipass
Packit 63bb0d
          POSTGRES_DB:       koji
Packit 63bb0d
      koji:
Packit 63bb0d
        image: quay.io/osbuild/ghci-koji:v1
Packit 63bb0d
        env:
Packit 63bb0d
          POSTGRES_USER:     koji
Packit 63bb0d
          POSTGRES_PASSWORD: kojipass
Packit 63bb0d
          POSTGRES_DB:       koji
Packit 63bb0d
          POSTGRES_HOST:     postgres
Packit 63bb0d
        ports:
Packit 63bb0d
          - 8080:80
Packit 63bb0d
    steps:
Packit 63bb0d
      - name: Set up Go 1.12
Packit 63bb0d
        uses: actions/setup-go@v1
Packit 63bb0d
        with:
Packit 63bb0d
          go-version: 1.12
Packit 63bb0d
        id: go
Packit 63bb0d
Packit 63bb0d
        # We need python for koji client.
Packit 63bb0d
      - name: Set up Python
Packit 63bb0d
        uses: actions/setup-python@v2
Packit 63bb0d
        with:
Packit 63bb0d
          python-version: 3.8
Packit 63bb0d
Packit 63bb0d
      - name: Check out code into the Go module directory
Packit 63bb0d
        uses: actions/checkout@v2
Packit 63bb0d
Packit 63bb0d
        # Koji from pip is missing its config file.
Packit 63bb0d
        # To fix this, the default Fedora 32 config is included in the repo
Packit 63bb0d
        # and installed here. See the last line of the script.
Packit 63bb0d
      - name: Install koji client
Packit 63bb0d
        run: |
Packit 63bb0d
          sudo apt-get install -y libkrb5-dev
Packit 63bb0d
          python -m pip install --upgrade pip
Packit 63bb0d
          pip install koji
Packit 63bb0d
          sudo cp .github/koji.conf /etc/koji.conf
Packit 63bb0d
Packit 63bb0d
      - name: Run unit tests
Packit 63bb0d
        run: go test -v -race -covermode atomic -coverprofile=coverage.txt -tags koji_test ./internal/upload/koji
Packit 63bb0d
Packit 63bb0d
      - name: Send coverage to codecov.io
Packit 63bb0d
        run: bash <(curl -s https://codecov.io/bash)