From 315a328570fe3abcbd061ee52cf57f410168b388 Mon Sep 17 00:00:00 2001 From: wangjia <809946525@qq.com> Date: Fri, 8 May 2026 01:57:47 +0800 Subject: [PATCH] =?UTF-8?q?chore(ci):=20=E6=94=B9=E7=94=A8=20Mac=20?= =?UTF-8?q?=E6=9C=AC=E6=9C=BA=20runner=EF=BC=8C=E7=9B=B4=E6=8E=A5=E4=BD=BF?= =?UTF-8?q?=E7=94=A8=E5=B7=B2=E5=AE=89=E8=A3=85=E7=9A=84=20Go/Flutter?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitea/workflows/deploy.yml | 39 +++++++++++++------------------------ 1 file changed, 13 insertions(+), 26 deletions(-) diff --git a/.gitea/workflows/deploy.yml b/.gitea/workflows/deploy.yml index 1bbfe4c..77750d3 100644 --- a/.gitea/workflows/deploy.yml +++ b/.gitea/workflows/deploy.yml @@ -6,7 +6,7 @@ on: jobs: deploy: - runs-on: ubuntu-latest + runs-on: mac env: GOPROXY: https://goproxy.cn,direct PUB_HOSTED_URL: https://pub.flutter-io.cn @@ -14,11 +14,6 @@ jobs: steps: - uses: actions/checkout@v4 - - name: Setup paths - run: | - echo "/volume1/docker/tools/go/bin" >> $GITHUB_PATH - echo "/volume1/docker/tools/flutter/bin" >> $GITHUB_PATH - - name: Go tests working-directory: backend run: go test ./... @@ -35,38 +30,30 @@ jobs: working-directory: client run: flutter build web --release --dart-define=BASE_URL=https://jiu.51yanmei.com --dart-define=PUBLIC_URL=https://jiu.51yanmei.com - - name: Package artifacts - run: | - tar -czf web.tar.gz -C client/build web - echo "VERSION=v$(date +%Y%m%d.%H%M)" >> $GITHUB_ENV - - - name: Create Forgejo Release + - name: Package & Create Forgejo Release env: FORGEJO_TOKEN: ${{ secrets.FORGEJO_TOKEN }} FORGEJO_URL: ${{ secrets.FORGEJO_URL }} run: | + tar -czf web.tar.gz -C client/build web + VERSION="v$(date +%Y%m%d.%H%M)" RESP=$(curl -s -X POST "${FORGEJO_URL}/api/v1/repos/${{ gitea.repository }}/releases" \ -H "Authorization: token ${FORGEJO_TOKEN}" \ -H "Content-Type: application/json" \ -d "{\"tag_name\":\"${VERSION}\",\"name\":\"Release ${VERSION}\",\"draft\":false,\"prerelease\":false}") echo "API response: ${RESP}" RELEASE_ID=$(echo "${RESP}" | python3 -c "import sys,json; print(json.load(sys.stdin)['id'])") - curl -sf -X POST "${FORGEJO_URL}/api/v1/repos/${{ gitea.repository }}/releases/${RELEASE_ID}/assets" \ - -H "Authorization: token ${FORGEJO_TOKEN}" \ - -F "attachment=@backend/jiu-server" - + -H "Authorization: token ${FORGEJO_TOKEN}" -F "attachment=@backend/jiu-server" curl -sf -X POST "${FORGEJO_URL}/api/v1/repos/${{ gitea.repository }}/releases/${RELEASE_ID}/assets" \ - -H "Authorization: token ${FORGEJO_TOKEN}" \ - -F "attachment=@web.tar.gz" - - echo "Release ${VERSION} created: ${FORGEJO_URL}/${{ gitea.repository }}/releases/tag/${VERSION}" + -H "Authorization: token ${FORGEJO_TOKEN}" -F "attachment=@web.tar.gz" + echo "Release ${VERSION} created" - name: Setup SSH run: | mkdir -p ~/.ssh - echo "${{ secrets.EC2_SSH_KEY }}" > ~/.ssh/ec2.pem - chmod 600 ~/.ssh/ec2.pem + echo "${{ secrets.EC2_SSH_KEY }}" > ~/.ssh/ec2_deploy.pem + chmod 600 ~/.ssh/ec2_deploy.pem ssh-keyscan -H ${{ secrets.EC2_HOST }} >> ~/.ssh/known_hosts - name: Deploy to EC2 @@ -74,10 +61,10 @@ jobs: EC2_HOST: ${{ secrets.EC2_HOST }} EC2_USER: ${{ secrets.EC2_USER }} run: | - scp -O -i ~/.ssh/ec2.pem backend/jiu-server ${EC2_USER}@${EC2_HOST}:/tmp/jiu-server - rsync -avz --delete -e "ssh -i ~/.ssh/ec2.pem" \ + scp -O -i ~/.ssh/ec2_deploy.pem backend/jiu-server ${EC2_USER}@${EC2_HOST}:/tmp/jiu-server + rsync -avz --delete -e "ssh -i ~/.ssh/ec2_deploy.pem" \ client/build/web/ ${EC2_USER}@${EC2_HOST}:/tmp/jiu-web-new/ - ssh -i ~/.ssh/ec2.pem ${EC2_USER}@${EC2_HOST} << 'ENDSSH' + ssh -i ~/.ssh/ec2_deploy.pem ${EC2_USER}@${EC2_HOST} << 'ENDSSH' sudo systemctl stop jiu cp /tmp/jiu-server /opt/jiu/backend/jiu-server chmod +x /opt/jiu/backend/jiu-server @@ -94,4 +81,4 @@ jobs: - name: Cleanup SSH key if: always() - run: rm -f ~/.ssh/ec2.pem + run: rm -f ~/.ssh/ec2_deploy.pem