From cde7995132e13edc224c0a908d825a2aa907bd6a Mon Sep 17 00:00:00 2001 From: Houmgaor Date: Sun, 19 Oct 2025 22:00:14 +0200 Subject: [PATCH] feat(ci): trying a new CI pipeline. --- .github/workflows/go-improved.yml | 119 ++++++++++++++++++++++++++++++ 1 file changed, 119 insertions(+) create mode 100644 .github/workflows/go-improved.yml diff --git a/.github/workflows/go-improved.yml b/.github/workflows/go-improved.yml new file mode 100644 index 000000000..f1c5f68ab --- /dev/null +++ b/.github/workflows/go-improved.yml @@ -0,0 +1,119 @@ +name: Build and Test + +on: + push: + branches: + - main + - develop + - 'fix-*' + - 'feature-*' + paths: + - 'common/**' + - 'config/**' + - 'network/**' + - 'server/**' + - 'go.mod' + - 'go.sum' + - '.github/workflows/go.yml' + pull_request: + branches: + - main + - develop + +jobs: + test: + name: Test + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v4 + + - name: Set up Go + uses: actions/setup-go@v5 + with: + go-version: '1.21' + + - name: Download dependencies + run: go mod download + + - name: Run Tests + run: go test -v ./... -timeout=10m + + - name: Run Tests with Race Detector + run: go test -race ./... -timeout=10m + + - name: Generate Coverage Report + run: go test -coverprofile=coverage.out ./... + + - name: Upload Coverage to Codecov + uses: codecov/codecov-action@v3 + with: + files: ./coverage.out + flags: unittests + name: codecov-umbrella + + build: + name: Build + needs: test + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v4 + + - name: Set up Go + uses: actions/setup-go@v5 + with: + go-version: '1.21' + + - name: Download dependencies + run: go mod download + + - name: Build Linux-amd64 + run: env GOOS=linux GOARCH=amd64 go build -v + + - name: Upload Linux-amd64 artifacts + uses: actions/upload-artifact@v4 + with: + name: Linux-amd64 + path: | + ./erupe-ce + ./config.json + ./www/ + ./savedata/ + ./bin/ + ./bundled-schema/ + retention-days: 7 + + - name: Build Windows-amd64 + run: env GOOS=windows GOARCH=amd64 go build -v + + - name: Upload Windows-amd64 artifacts + uses: actions/upload-artifact@v4 + with: + name: Windows-amd64 + path: | + ./erupe-ce.exe + ./config.json + ./www/ + ./savedata/ + ./bin/ + ./bundled-schema/ + retention-days: 7 + + lint: + name: Lint + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v4 + + - name: Set up Go + uses: actions/setup-go@v5 + with: + go-version: '1.21' + + - name: Run golangci-lint + uses: golangci/golangci-lint-action@v3 + with: + version: latest + args: --timeout=5m --out-format=github-actions