From 77b3af80150e2ad4b4a16a5a9cffc59cb9864543 Mon Sep 17 00:00:00 2001 From: shanshanzhong Date: Sat, 9 Aug 2025 05:18:44 -0700 Subject: [PATCH] init --- .gitea/workflows/docker.yml | 77 +++++++++++++++++++------------------ 1 file changed, 39 insertions(+), 38 deletions(-) diff --git a/.gitea/workflows/docker.yml b/.gitea/workflows/docker.yml index 9c13b6b..d4372ee 100644 --- a/.gitea/workflows/docker.yml +++ b/.gitea/workflows/docker.yml @@ -14,7 +14,6 @@ env: # 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 }} @@ -23,57 +22,59 @@ env: jobs: linux: - runs-on: vpn - container: - image: golang:1.24-alpine - env: - GOARCH: amd64 + runs-on: ubuntu-latest strategy: matrix: + # 使用gitea-tool-cache需要指定具体的版本号 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: Checkout + uses: https://${{ env.GIT_USERNAME }}:${{ env.GIT_PASSWORD }}@${{ vars.DOMAIN_OF_GITEA}}/actions/checkout@main - - name: Setup Go environment + # 将.env环境变量配置文件拷贝致gitea runner容器 + - name: copy env file to runner container + uses: https://${{ env.GIT_USERNAME }}:${{ env.GIT_PASSWORD }}@${{ vars.DOMAIN_OF_GITEA}}/actions/ssh-action@main + with: + host: ${{ env.SSH_HOST }} + username: ${{ env.SSH_USER }} + password: ${{ env.SSH_PASSWORD }} + port: ${{ env.SSH_PORT }} + debug: true + script: | + mkdir -p ~/cicd_env_files + cd ~/cicd_env_files + rm -f ./.env + docker cp ${{ vars.JOB_CONTAINER_NAME }}:${{ github.workspace }}/deploy/.env ./.env + source ./.env + if [ -n "${{ vars.RUNNER_CONTAINER_NAME }}" ]; then + docker cp .env ${{ vars.RUNNER_CONTAINER_NAME }}:/.env + docker exec ${{ vars.RUNNER_CONTAINER_NAME }} /bin/bash -c "source /.env" + else + echo "RUNNER_CONTAINER_NAME is not set, skipping container operations" + fi + + - name: Setup Go environment with cache + uses: https://${{ env.GIT_USERNAME }}:${{ env.GIT_PASSWORD }}@${{ vars.DOMAIN_OF_GITEA}}/actions/setup-go@main + with: + go-version: ${{ matrix.go }} + cache: true + cache-dependency-path: go.sum + + + - name: Prepare GO environment run: | go env -w GOPROXY=https://goproxy.cn,direct - go env -w GOPRIVATE="${DOMAIN}" + go env -w GOPRIVATE="${{ vars.DOMAIN_OF_GITEA}}" go env -w GOSUMDB=off - git config --global url."https://${GIT_USERNAME}:${GIT_PASSWORD}@${DOMAIN}/".insteadOf "https://${DOMAIN}/" + git config --global url."https://${{ env.GIT_USERNAME }}:${{ env.GIT_PASSWORD }}@${{ vars.DOMAIN_OF_GITEA}}/".insteadOf "https://${{ vars.DOMAIN_OF_GITEA}}/" - name: Build and push docker image run: | - if [ -f "${{ github.workspace }}/deploy/.env" ]; then - source ${{ github.workspace }}/deploy/.env - fi - - echo "Building application..." + source ${{ gitea.workspace }}/deploy/.env go mod tidy make build-linux - - echo "Building Docker image..." make docker - - # echo "Publishing Docker image..." - # make publish-docker - - echo "Starting Docker container..." + make publish-docker make docker-run \ No newline at end of file