name: CI Pipeline for the Go API on: push: branches: - master jobs: docker-test: name: Docker Image Build Test runs-on: docker-latest steps: - name: Checkout repository uses: actions/checkout@v3 - name: Build Docker image run: | docker build -t go-api-test . compose-test: name: Docker Compose Validation runs-on: docker-latest steps: - name: Checkout repository uses: actions/checkout@v3 - name: Validate docker-compose.yml run: | sudo docker-compose config -q go-build: name: Go Build & Cross-Compile runs-on: docker-latest steps: - name: Checkout repository uses: actions/checkout@v3 - name: Check Go version run: go version - name: Go Vet (basic static check) run: go vet ./... - name: Build Linux binary run: | mkdir -p build go build -o build/go-api-linux main.go - name: Build Windows binary run: | GOOS=windows GOARCH=amd64 go build -o build/go-api.exe main.go - name: Show build output run: ls -lh build - name: Upload build artifacts uses: actions/upload-artifact@v3 with: name: go-api-binaries path: build/