name: Test on: push: pull_request: jobs: nix-env: name: Initialize Nix runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 - name: Install Nix packages uses: diamondburned/cache-install@main generate: name: Generate needs: [nix-env] runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 - name: Install Nix packages uses: diamondburned/cache-install@main - name: Generate run: | go generate ./... if ! git diff --exit-code; then echo '::error::Repository differ after `go generate`.' exit 1 fi build: name: Build runs-on: ubuntu-latest needs: [generate] steps: - uses: actions/checkout@v2 - name: Install Nix packages uses: diamondburned/cache-install@main - name: Build run: go build ./... - name: Run Unit Tests run: go test ./... unit-test: name: Unit Test runs-on: ubuntu-latest needs: [build] steps: - uses: actions/checkout@v2 - name: Install Nix packages uses: diamondburned/cache-install@main - name: Test run: go test ./... integration-test: name: Integration Test concurrency: integration-test runs-on: ubuntu-latest needs: [build] steps: - uses: actions/checkout@v2 - name: Install Nix packages uses: diamondburned/cache-install@main - name: Test run: | go test -coverprofile /tmp/coverage.out -race ./... go tool cover -func /tmp/coverage.out env: BOT_TOKEN: ${{ secrets.BOT_TOKEN }} CHANNEL_ID: ${{ secrets.CHANNEL_ID }} GUILD_ID: ${{ secrets.GUILD_ID }} VOICE_ID: ${{ secrets.VOICE_ID }} - name: Upload coverage profile uses: actions/upload-artifact@v3 with: name: coverage path: /tmp/coverage.out