mirror of
https://github.com/jesseduffield/lazygit.git
synced 2025-01-26 05:37:18 +02:00
c7a3b69eb9
I want to see how we go removing all retry logic within a test. Lazygit should be trusted to tell us when it's no longer busy, and if it that proves false we should fix the issue in the code rather than being lenient in the tests
171 lines
4.8 KiB
YAML
171 lines
4.8 KiB
YAML
name: Continuous Integration
|
|
|
|
env:
|
|
GO_VERSION: 1.18
|
|
|
|
on:
|
|
push:
|
|
branches:
|
|
- master
|
|
pull_request:
|
|
|
|
jobs:
|
|
unit-tests:
|
|
strategy:
|
|
fail-fast: false
|
|
matrix:
|
|
os:
|
|
- ubuntu-latest
|
|
- windows-latest
|
|
include:
|
|
- os: ubuntu-latest
|
|
cache_path: ~/.cache/go-build
|
|
- os: windows-latest
|
|
cache_path: ~\AppData\Local\go-build
|
|
name: ci - ${{matrix.os}}
|
|
runs-on: ${{matrix.os}}
|
|
env:
|
|
GOFLAGS: -mod=vendor
|
|
steps:
|
|
- name: Checkout code
|
|
uses: actions/checkout@v2
|
|
- name: Setup Go
|
|
uses: actions/setup-go@v1
|
|
with:
|
|
go-version: 1.18.x
|
|
- name: Cache build
|
|
uses: actions/cache@v3
|
|
with:
|
|
path: |
|
|
${{matrix.cache_path}}
|
|
~/go/pkg/mod
|
|
key: ${{runner.os}}-go-${{hashFiles('**/go.sum')}}-test
|
|
restore-keys: |
|
|
${{runner.os}}-go-
|
|
- name: Test code
|
|
# we're passing -short so that we skip the integration tests, which will be run in parallel below
|
|
run: |
|
|
go test ./... -short
|
|
integration-tests:
|
|
runs-on: ubuntu-latest
|
|
name: "Integration Tests"
|
|
env:
|
|
GOFLAGS: -mod=vendor
|
|
steps:
|
|
- name: Checkout code
|
|
uses: actions/checkout@v2
|
|
- name: Setup Go
|
|
uses: actions/setup-go@v1
|
|
with:
|
|
go-version: 1.18.x
|
|
- name: Cache build
|
|
uses: actions/cache@v1
|
|
with:
|
|
path: |
|
|
~/.cache/go-build
|
|
~/go/pkg/mod
|
|
key: ${{runner.os}}-go-${{hashFiles('**/go.sum')}}-test
|
|
restore-keys: |
|
|
${{runner.os}}-go-
|
|
- name: Test code
|
|
run: |
|
|
go test pkg/integration/clients/*.go
|
|
build:
|
|
runs-on: ubuntu-latest
|
|
env:
|
|
GOFLAGS: -mod=vendor
|
|
GOARCH: amd64
|
|
steps:
|
|
- name: Checkout code
|
|
uses: actions/checkout@v2
|
|
- name: Setup Go
|
|
uses: actions/setup-go@v1
|
|
with:
|
|
go-version: 1.18.x
|
|
- name: Cache build
|
|
uses: actions/cache@v1
|
|
with:
|
|
path: |
|
|
~/.cache/go-build
|
|
~/go/pkg/mod
|
|
key: ${{runner.os}}-go-${{hashFiles('**/go.sum')}}-build
|
|
restore-keys: |
|
|
${{runner.os}}-go-
|
|
- name: Build linux binary
|
|
run: |
|
|
GOOS=linux go build
|
|
- name: Build windows binary
|
|
run: |
|
|
GOOS=windows go build
|
|
- name: Build darwin binary
|
|
run: |
|
|
GOOS=darwin go build
|
|
- name: Build integration test binary
|
|
run: |
|
|
GOOS=linux go build cmd/integration_test/main.go
|
|
- name: Build integration test injector
|
|
run: |
|
|
GOOS=linux go build pkg/integration/clients/injector/main.go
|
|
check-codebase:
|
|
runs-on: ubuntu-latest
|
|
env:
|
|
GOFLAGS: -mod=vendor
|
|
GOARCH: amd64
|
|
steps:
|
|
- name: Checkout code
|
|
uses: actions/checkout@v2
|
|
- name: Setup Go
|
|
uses: actions/setup-go@v1
|
|
with:
|
|
go-version: 1.18.x
|
|
- name: Cache build
|
|
uses: actions/cache@v1
|
|
with:
|
|
path: |
|
|
~/.cache/go-build
|
|
~/go/pkg/mod
|
|
key: ${{runner.os}}-go-${{hashFiles('**/go.sum')}}-build
|
|
restore-keys: |
|
|
${{runner.os}}-go-
|
|
- name: Check Cheatsheet
|
|
run: |
|
|
go run scripts/cheatsheet/main.go check
|
|
- name: Check Vendor Directory
|
|
# ensure our vendor directory matches up with our go modules
|
|
run: |
|
|
go mod vendor && git diff --exit-code || (echo "Unexpected change to vendor directory. Run 'go mod vendor' locally and commit the changes" && exit 1)
|
|
- name: Check Integration Test List
|
|
# ensure our integration test list is up to date
|
|
run: |
|
|
go generate pkg/integration/tests/tests.go && git diff --exit-code || (echo "Integration test list not up to date. Run 'go generate pkg/integration/tests/tests.go' locally and commit the changes" && exit 1)
|
|
shell: bash # needed so that we get "-o pipefail"
|
|
- name: Check Filenames
|
|
run: scripts/check_filenames.sh
|
|
lint:
|
|
runs-on: ubuntu-latest
|
|
env:
|
|
GOFLAGS: -mod=vendor
|
|
steps:
|
|
- name: Checkout code
|
|
uses: actions/checkout@v2
|
|
- name: Setup Go
|
|
uses: actions/setup-go@v1
|
|
with:
|
|
go-version: 1.18.x
|
|
- name: Cache build
|
|
uses: actions/cache@v1
|
|
with:
|
|
path: |
|
|
~/.cache/go-build
|
|
~/go/pkg/mod
|
|
key: ${{runner.os}}-go-${{hashFiles('**/go.sum')}}-test
|
|
restore-keys: |
|
|
${{runner.os}}-go-
|
|
- name: Lint
|
|
uses: golangci/golangci-lint-action@v3.1.0
|
|
with:
|
|
version: latest
|
|
- name: errors
|
|
run: golangci-lint run
|
|
if: ${{ failure() }}
|