diff --git a/.gitea/workflows/develop_build.yaml b/.gitea/workflows/develop_build.yaml new file mode 100644 index 00000000..849277cd --- /dev/null +++ b/.gitea/workflows/develop_build.yaml @@ -0,0 +1,56 @@ +name: AiDA WEB-Node.js Develop 分支构建部署123 +on: + workflow_dispatch: + + push: + branches: + - dev_vite + +jobs: + build: + runs-on: ubuntu-latest + if: "contains(github.event.head_commit.message, '[run build]')" + + strategy: + matrix: + node-version: [ 18.18.0 ] + + env: + REMOTE_DEPLOY_PATH: /workspace/workspace_aida/DevelopVersion/develop-aida-web-front + + steps: + - name: 1.检出代码 + uses: actions/checkout@v4 + + - name: 2.设置 Node.js 环境 + uses: actions/setup-node@v6 + with: + node-version: ${{ matrix.node-version }} + - run: npm install + - run: npm run build:dev + - run: ls -l + + - name: 3.同步文件到远程服务器 + uses: appleboy/scp-action@v0.1.7 + with: + host: ${{ secrets.SERVER_HOST }} + username: ${{ secrets.SERVER_USER }} + key: ${{ secrets.SSH_KEY }} + source: "./dist/*" + target: ${{ env.REMOTE_DEPLOY_PATH }} + ssh_options: "-o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null" + strip_components: 0 + + - name: 4. 远程重载 Nginx 配置 + uses: appleboy/ssh-action@v1.0.3 + with: + host: ${{ secrets.SERVER_HOST }} + username: ${{ secrets.SERVER_USER }} + key: ${{ secrets.SSH_KEY }} + # 核心:执行 Nginx 重载命令 + script: | + echo "尝试重载 Nginx 服务..." + # 💡 注意:执行此命令需要服务器用户具有 sudo 权限,并且配置了 NOPASSWD。 + # 否则工作流可能会因为权限不足而失败。 + sudo systemctl reload nginx + echo "Nginx 重载命令已发送。" \ No newline at end of file diff --git a/.gitea/workflows/develop_build_manual.yaml b/.gitea/workflows/develop_build_manual.yaml new file mode 100644 index 00000000..09758be3 --- /dev/null +++ b/.gitea/workflows/develop_build_manual.yaml @@ -0,0 +1,50 @@ +name: 手动触发 AiDA WEB-Node.js Develop 分支构建部署 +on: + workflow_dispatch: + +jobs: + build: + runs-on: ubuntu-latest + + strategy: + matrix: + node-version: [ 18.18.0 ] + env: + REMOTE_DEPLOY_PATH: /workspace/workspace_aida/DevelopVersion/develop-aida-web-front + + steps: + - name: 1.检出代码 + uses: actions/checkout@v4 + + - name: 2.设置 Node.js 环境 + uses: actions/setup-node@v6 + with: + node-version: ${{ matrix.node-version }} + - run: npm install + - run: npm run build:dev + - run: ls -l + + - name: 3.同步文件到远程服务器 + uses: appleboy/scp-action@v0.1.7 + with: + host: ${{ secrets.SERVER_HOST }} + username: ${{ secrets.SERVER_USER }} + key: ${{ secrets.SSH_KEY }} + source: "./dist/*" + target: ${{ env.REMOTE_DEPLOY_PATH }} + ssh_options: "-o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null" + strip_components: 0 + + - name: 4. 远程重载 Nginx 配置 + uses: appleboy/ssh-action@v1.0.3 + with: + host: ${{ secrets.SERVER_HOST }} + username: ${{ secrets.SERVER_USER }} + key: ${{ secrets.SSH_KEY }} + # 核心:执行 Nginx 重载命令 + script: | + echo "尝试重载 Nginx 服务..." + # 💡 注意:执行此命令需要服务器用户具有 sudo 权限,并且配置了 NOPASSWD。 + # 否则工作流可能会因为权限不足而失败。 + sudo systemctl reload nginx + echo "Nginx 重载命令已发送。" \ No newline at end of file diff --git a/.gitea/workflows/prod_build_manual.yaml b/.gitea/workflows/prod_build_manual.yaml new file mode 100644 index 00000000..4c696f85 --- /dev/null +++ b/.gitea/workflows/prod_build_manual.yaml @@ -0,0 +1,53 @@ +name: AiDA WEB-Node.js StableVersion 分支构建部署 +on: + workflow_dispatch: + +jobs: + build: + runs-on: ubuntu-latest + + strategy: + matrix: + node-version: [ 18.18.0 ] + + steps: + - name: 1.检出代码 + uses: actions/checkout@v4 + with: + ref: StableVersion + + - name: 2.打印当前分支信息 + run: | + echo "Current branch being deployed is: $(git rev-parse --abbrev-ref HEAD)" + echo "The code is from the 'main' branch, as specified in 'actions/checkout'." + + - name: 3.设置 Node.js 环境 ${{ matrix.node-version }} + uses: actions/setup-node@v6 + with: + node-version: ${{ matrix.node-version }} + - run: npm install + - run: npm run build + - run: ls -l + + - name: 3.5. 手动安装 AWS CLI v2 # 新增步骤:确保 aws 命令可用 + run: | + echo "安装 AWS CLI V2..." + curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip" + unzip awscliv2.zip + sudo ./aws/install --update + aws --version + echo "AWS CLI V2 安装完成。" + + - name: 4.配置 AWS 凭证 + uses: aws-actions/configure-aws-credentials@main + with: + aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }} + aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }} + aws-region: 'ap-east-1' + + - name: 5.同步 dist 目录到 S3 + run: | + aws s3 sync dist/* s3://${{ secrets.S3_BUCKET_NAME }}/ --acl public-read + + - name: 6.部署完成 + run: echo "构建和部署到 S3 任务完成。" \ No newline at end of file diff --git a/.gitea/workflows/prod_build_schedule.yaml b/.gitea/workflows/prod_build_schedule.yaml new file mode 100644 index 00000000..0e712c5e --- /dev/null +++ b/.gitea/workflows/prod_build_schedule.yaml @@ -0,0 +1,56 @@ +name: AiDA WEB-Node.js StableVersion 分支构建部署 +on: + schedule: + # cron为UTC时区,构建时间=部署时间-8小时 {*分 (-8)时 *日 *月 *周} --- + # 示例: 1月1日22点22分触发构建 cron写作 - '22 14 1 1 *' + - cron: '22 14 1 1 *' + +jobs: + build: + runs-on: ubuntu-latest + + strategy: + matrix: + node-version: [ 18.18.0 ] + + steps: + - name: 1.检出代码 + uses: actions/checkout@v4 + with: + ref: StableVersion + + - name: 2.打印当前分支信息 + run: | + echo "Current branch being deployed is: $(git rev-parse --abbrev-ref HEAD)" + echo "The code is from the 'main' branch, as specified in 'actions/checkout'." + + - name: 3.设置 Node.js 环境 ${{ matrix.node-version }} + uses: actions/setup-node@v6 + with: + node-version: ${{ matrix.node-version }} + - run: npm install + - run: npm run build + - run: ls -l + + - name: 3.5. 手动安装 AWS CLI v2 # 新增步骤:确保 aws 命令可用 + run: | + echo "安装 AWS CLI V2..." + curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip" + unzip awscliv2.zip + sudo ./aws/install --update + aws --version + echo "AWS CLI V2 安装完成。" + + - name: 4.配置 AWS 凭证 + uses: aws-actions/configure-aws-credentials@main + with: + aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }} + aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }} + aws-region: 'ap-east-1' + + - name: 5.同步 dist 目录到 S3 + run: | + aws s3 sync dist/* s3://${{ secrets.S3_BUCKET_NAME }}/ --acl public-read + + - name: 6.部署完成 + run: echo "构建和部署到 S3 任务完成。" \ No newline at end of file