移除docker.yml中冗余的go mod tidy和build-linux步骤,这些步骤已在其他流程中处理 将docker compose命令改为docker-compose以兼容旧版本
75 lines
2.0 KiB
YAML
75 lines
2.0 KiB
YAML
name: Build docker and publish
|
|
run-name: The pipeline for docker build
|
|
on:
|
|
push:
|
|
branches:
|
|
- main
|
|
pull_request:
|
|
branches:
|
|
- main
|
|
|
|
env:
|
|
# Docker
|
|
REPO: ${{ vars.REPO }}
|
|
# Gitea
|
|
GIT_USERNAME: ${{ vars.GIT_USERNAME }}
|
|
GIT_PASSWORD: ${{ vars.GIT_PASSWORD }}
|
|
DOMAIN: ${{ vars.DOMAIN_OF_GITEA }}
|
|
# Host SSH
|
|
SSH_HOST: ${{ vars.SSH_HOST }}
|
|
SSH_PORT: ${{ vars.SSH_PORT }}
|
|
SSH_USER: ${{ vars.SSH_USER }}
|
|
SSH_PASSWORD: ${{ vars.SSH_PASSWORD }}
|
|
|
|
jobs:
|
|
linux:
|
|
runs-on: vpn
|
|
container:
|
|
image: golang:1.24-alpine
|
|
env:
|
|
GOARCH: amd64
|
|
strategy:
|
|
matrix:
|
|
go: ["1.24.3"]
|
|
|
|
steps:
|
|
- name: Install dependencies
|
|
run: |
|
|
apk add --no-cache git make docker-cli curl bash
|
|
|
|
- name: Checkout code
|
|
run: |
|
|
echo "Setting up git credentials..."
|
|
git config --global credential.helper store
|
|
echo "https://${GIT_USERNAME}:${GIT_PASSWORD}@${DOMAIN}" > ~/.git-credentials
|
|
|
|
echo "Cloning repository..."
|
|
git clone --depth 1 https://${DOMAIN}/${{ github.repository }}.git .
|
|
|
|
echo "Fetching tags..."
|
|
git fetch --tags || true
|
|
|
|
echo "Repository cloned successfully"
|
|
|
|
- name: Setup Go environment
|
|
run: |
|
|
go env -w GOPROXY=https://goproxy.cn,direct
|
|
go env -w GOPRIVATE="${DOMAIN}"
|
|
go env -w GOSUMDB=off
|
|
git config --global url."https://${GIT_USERNAME}:${GIT_PASSWORD}@${DOMAIN}/".insteadOf "https://${DOMAIN}/"
|
|
|
|
- name: Build and push docker image
|
|
run: |
|
|
if [ -f "${{ github.workspace }}/deploy/.env" ]; then
|
|
source ${{ github.workspace }}/deploy/.env
|
|
fi
|
|
|
|
echo "Building Docker image..."
|
|
make docker
|
|
|
|
echo "Publishing Docker image..."
|
|
make publish-docker
|
|
|
|
echo "Starting Docker container..."
|
|
make docker-run
|
|
|