diff --git a/.gitea/workflows/deploy.yml b/.gitea/workflows/deploy.yml index ec14aa3..1c88854 100644 --- a/.gitea/workflows/deploy.yml +++ b/.gitea/workflows/deploy.yml @@ -10,42 +10,21 @@ env: NODE_ENV: production jobs: - install: + build-and-deploy: runs-on: [self-hosted, rent-deploy] steps: - - name: Checkout code - run: | - rm -rf $GITHUB_WORKSPACE/* - cd $GITHUB_WORKSPACE - git clone --depth 1 ${{ github.server_url }}/${{ github.repository }}.git . - git checkout ${{ github.sha }} - - name: Setup Node.js run: | which node || (curl -fsSL https://deb.nodesource.com/setup_18.x | bash - && apt-get install -y nodejs) + which pnpm || npm install -g pnpm - name: Install dependencies run: | - npm install -g pnpm pnpm config set store-dir .pnpm-store pnpm install --frozen-lockfile - build: - runs-on: [self-hosted, rent-deploy] - needs: install - steps: - - name: Checkout code - run: | - rm -rf $GITHUB_WORKSPACE/* - cd $GITHUB_WORKSPACE - git clone --depth 1 ${{ github.server_url }}/${{ github.repository }}.git . - git checkout ${{ github.sha }} - - name: Build shared packages run: | - npm install -g pnpm - pnpm config set store-dir .pnpm-store - pnpm install --frozen-lockfile pnpm --filter @rent/shared-types build pnpm --filter @rent/shared-utils build @@ -61,46 +40,8 @@ jobs: - name: Build website run: pnpm --filter @rent/official-website build - deploy-production: - runs-on: [self-hosted, rent-deploy] - needs: build - if: github.ref == 'refs/heads/prod' - steps: - - name: Checkout code - run: | - rm -rf $GITHUB_WORKSPACE/* - cd $GITHUB_WORKSPACE - git clone --depth 1 ${{ github.server_url }}/${{ github.repository }}.git . - git checkout ${{ github.sha }} - - - name: Deploy to production - run: | - echo "部署到生产环境..." - cd deploy/docker - export PROD_DB_PASSWORD="${{ secrets.PROD_DB_PASSWORD }}" - export PROD_JWT_SECRET="${{ secrets.PROD_JWT_SECRET }}" - export ENCRYPTION_KEY="${{ secrets.ENCRYPTION_KEY }}" - docker-compose -f docker-compose.prod.yml down --remove-orphans - docker-compose -f docker-compose.prod.yml build --parallel - docker-compose -f docker-compose.prod.yml up -d - docker image prune -f - echo "等待服务启动..." - sleep 10 - docker-compose -f docker-compose.prod.yml ps - - deploy-test: - runs-on: [self-hosted, rent-deploy] - needs: build - if: github.ref == 'refs/heads/test' - steps: - - name: Checkout code - run: | - rm -rf $GITHUB_WORKSPACE/* - cd $GITHUB_WORKSPACE - git clone --depth 1 ${{ github.server_url }}/${{ github.repository }}.git . - git checkout ${{ github.sha }} - - name: Deploy to test + if: github.ref == 'refs/heads/test' run: | echo "部署到测试环境..." cd deploy/docker @@ -114,3 +55,19 @@ jobs: echo "等待服务启动..." sleep 10 docker-compose -f docker-compose.test.yml ps + + - name: Deploy to production + if: github.ref == 'refs/heads/prod' + run: | + echo "部署到生产环境..." + cd deploy/docker + export PROD_DB_PASSWORD="${{ secrets.PROD_DB_PASSWORD }}" + export PROD_JWT_SECRET="${{ secrets.PROD_JWT_SECRET }}" + export ENCRYPTION_KEY="${{ secrets.ENCRYPTION_KEY }}" + docker-compose -f docker-compose.prod.yml down --remove-orphans + docker-compose -f docker-compose.prod.yml build --parallel + docker-compose -f docker-compose.prod.yml up -d + docker image prune -f + echo "等待服务启动..." + sleep 10 + docker-compose -f docker-compose.prod.yml ps