Files
auth-proxy/.github/workflows/ci-cd.yml
db123-test 0d3a108dab chore(ci): switch Docker build cache from registry to local
Use local caching for Docker builds in CI pipeline to simplify
configuration and improve build performance by storing cache
in /tmp/.buildx-cache instead of pushing to registry.
2026-05-04 14:49:43 +03:30

77 lines
2.4 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: /usr/local/go/bin/go env -w GOPROXY=https://go.iranserver.com/repository/go/ && /usr/local/go/bin/go env -w GOSUMDB=off
- name: Download dependencies
run: /usr/local/go/bin/go mod download
- name: Check formatting
run: |
if [ "$(/usr/local/go/bin/gofmt -l $(find . -name '*.go' -not -path './vendor/*'))" ]; then
echo "Files not properly formatted:"
/usr/local/go/bin/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 /usr/local/go/bin/go build -o auth-proxy-linux-amd64 .
#
# - name: Build for Windows amd64
# run: CGO_ENABLED=0 GOOS=windows GOARCH=amd64 /usr/local/go/bin/go build -o auth-proxy-windows-amd64.exe
#
# - name: Package binaries
# run: |
# tar czf auth-proxy-linux-amd64.tar.gz auth-proxy-linux-amd64
# tar czf auth-proxy-windows-amd64.tar.gz auth-proxy-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 rm builder || true
docker buildx create --name builder --use
- name: Build & push
run: |
docker buildx build \
--platform linux/amd64 \
--tag "git.yejayekhoob.com/db123/auth-proxy:${{ github.sha }}" \
--tag "git.yejayekhoob.com/db123/auth-proxy:latest" \
--cache-from=type=local,dest=/tmp/.buildx-cache \
--cache-to=type=local,dest=/tmp/.buildx-cache \
--push \
.