Files
auth-proxy/.github/workflows/ci-cd.yml
db123-test b4797afd39 ci: update Go proxy mirror and disable GOSUMDB in CI
Update GOPROXY to use go.iranserver.com instead of go.devneeds.ir for dependency downloads.
Disable GOSUMDB validation to speed up the build process and avoid potential checksum mismatches.
2026-05-04 09:36:06 +03:30

82 lines
2.5 KiB
YAML

name: CI/CD
on:
push:
branches: [main, master]
pull_request:
branches: [main, master]
jobs:
lint-and-format:
name: Lint & Format
runs-on: shell-ubuntu
steps:
- name: Checkout repo
run: git clone "${{ secrets.G_CLONE_URL }}" .
- name: Set go proxy mirror
run: go env -w GOPROXY=https://go.iranserver.com/repository/go/ && go env -w GOSUMDB=off
- name: Download dependencies
run: go mod download
- name: Install golangci-lint
run: curl -sSfL https://raw.githubusercontent.com/golangci/golangci-lint/master/install.sh | sh -s -- -b /usr/local/bin v1.64.8
- name: Run golangci-lint
run: golangci-lint run --timeout=3m
- name: Check formatting
run: |
if [ "$(gofmt -l $(find . -name '*.go' -not -path './vendor/*'))" ]; then
echo "Files not properly formatted:"
gofmt -l $(find . -name '*.go' -not -path './vendor/*')
exit 1
fi
build:
name: Build binaries
runs-on: shell-ubuntu
needs: lint-and-format
steps:
- name: Checkout repo
run: git clone "${{ secrets.G_CLONE_URL }}" .
- name: Build for Linux amd64
run: CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -o auth-gate-linux-amd64 .
- name: Build for Linux arm64
run: CGO_ENABLED=0 GOOS=linux GOARCH=arm64 go build -o auth-gate-linux-arm64 .
- name: Build for Windows amd64
run: CGO_ENABLED=0 GOOS=windows GOARCH=amd64 go build -o auth-gate-windows-amd64.exe
- name: Package binaries
run: |
tar czf auth-gate-linux-amd64.tar.gz auth-gate-linux-amd64
tar czf auth-gate-linux-arm64.tar.gz auth-gate-linux-arm64
tar czf auth-gate-windows-amd64.tar.gz auth-gate-windows-amd64.exe
docker:
name: Build & push Docker image
runs-on: shell-ubuntu
needs: lint-and-format
if: github.event_name == 'push'
steps:
- name: Checkout repo
run: git clone "${{ secrets.G_CLONE_URL }}" .
- name: Login to Gitea Registry
run: echo "${{ secrets.G_TOKEN }}" | docker login git.yejayekhoob.com -u "${{ secrets.G_USERNAME }}" --password-stdin
- name: Set up Docker Buildx
run: docker buildx create --name builder --use
- name: Build & push
run: |
docker buildx build \
--platform linux/amd64,linux/arm64 \
--tag "git.yejayekhoob.com/db123/auth-gate:${{ github.sha }}" \
--tag "git.yejayekhoob.com/db123/auth-gate:latest" \
--push \
.