Merge pull request #255 from partner-up-dev/develop #272
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: Deploy Backend to Aliyun FC | |
| on: | |
| workflow_dispatch: | |
| inputs: | |
| publish_layer_only: | |
| description: "Publish node_modules layer only (skip backend deploy)" | |
| type: boolean | |
| default: false | |
| push: | |
| branches: | |
| - master | |
| - develop | |
| paths: | |
| - ".node-version" | |
| - "apps/backend/**" | |
| - ".github/workflows/backend-fc-deploy.yml" | |
| - "package.json" | |
| - "pnpm-lock.yaml" | |
| - "pnpm-workspace.yaml" | |
| - "scripts/ci/fc/**" | |
| - "scripts/fc_*.py" | |
| permissions: | |
| contents: write | |
| issues: write | |
| pull-requests: write | |
| concurrency: | |
| group: backend-fc-deploy | |
| cancel-in-progress: false | |
| jobs: | |
| deploy: | |
| runs-on: ubuntu-latest | |
| environment: ${{ github.ref == 'refs/heads/master' && 'production' || 'staging' }} | |
| env: | |
| ALIYUN_FC_REGION: ${{ vars.ALIYUN_FC_REGION }} | |
| ALIYUN_FC_DB_MIGRATION_FUNCTION_NAME: ${{ vars.ALIYUN_FC_DB_MIGRATION_FUNCTION_NAME }} | |
| ALIYUN_FC_FUNCTION_NAME: ${{ vars.ALIYUN_FC_FUNCTION_NAME }} | |
| ALIYUN_FC_ROLE_ARN: ${{ vars.ALIYUN_FC_ROLE_ARN }} | |
| ALIYUN_FC_RESOURCE_GROUP_ID: ${{ vars.ALIYUN_FC_RESOURCE_GROUP_ID }} | |
| ALIYUN_FC_NODE_MODULES_LAYER_NAME: ${{ vars.ALIYUN_FC_NODE_MODULES_LAYER_NAME }} | |
| ALIYUN_FC_LOG_PROJECT: ${{ vars.ALIYUN_FC_LOG_PROJECT }} | |
| ALIYUN_FC_LOG_STORE: ${{ vars.ALIYUN_FC_LOG_STORE }} | |
| ALIYUN_FC_VPC_ID: ${{ vars.ALIYUN_FC_VPC_ID }} | |
| ALIYUN_FC_SECURITY_GROUP_ID: ${{ vars.ALIYUN_FC_SECURITY_GROUP_ID }} | |
| ALIYUN_FC_VSWITCH_ID_PRIMARY: ${{ vars.ALIYUN_FC_VSWITCH_ID_PRIMARY }} | |
| ALIYUN_FC_VSWITCH_ID_SECONDARY: ${{ vars.ALIYUN_FC_VSWITCH_ID_SECONDARY }} | |
| ALIYUN_FC_OSS_ENDPOINT: ${{ vars.ALIYUN_FC_OSS_ENDPOINT }} | |
| ALIYUN_FC_OSS_BUCKET: ${{ vars.ALIYUN_FC_OSS_BUCKET }} | |
| ALIYUN_FC_OSS_BUCKET_PATH: ${{ vars.ALIYUN_FC_OSS_BUCKET_PATH }} | |
| ALIYUN_FC_PATH: ${{ vars.ALIYUN_FC_PATH }} | |
| DATABASE_URL: ${{ secrets.DATABASE_URL }} | |
| DATABASE_URL_FOR_MIGRATION: ${{ secrets.DATABASE_URL_FOR_MIGRATION }} | |
| FIXED_IP_HTTP_PROXY: ${{ secrets.FIXED_IP_HTTP_PROXY }} | |
| WECHAT_OFFICIAL_ACCOUNT_APP_ID: ${{ secrets.WECHAT_OFFICIAL_ACCOUNT_APP_ID }} | |
| WECHAT_OFFICIAL_ACCOUNT_APP_SECRET: ${{ secrets.WECHAT_OFFICIAL_ACCOUNT_APP_SECRET }} | |
| WECHAT_AUTH_SESSION_SECRET: ${{ secrets.WECHAT_AUTH_SESSION_SECRET }} | |
| WECHAT_OAUTH_CALLBACK_URL: ${{ vars.WECHAT_OAUTH_CALLBACK_URL }} | |
| LLM_API_KEY: ${{ secrets.LLM_API_KEY }} | |
| LLM_BASE_URL: ${{ vars.LLM_BASE_URL }} | |
| LLM_DEFAULT_MODEL: ${{ vars.LLM_DEFAULT_MODEL }} | |
| FRONTEND_URL: ${{ vars.FRONTEND_URL }} | |
| PAYMENT_NOTIFY_BASE_URL: ${{ vars.PAYMENT_NOTIFY_BASE_URL }} | |
| AUTH_JWT_SECRET: ${{ secrets.AUTH_JWT_SECRET }} | |
| WECOM_TOKEN: ${{ secrets.WECOM_TOKEN }} | |
| WECOM_ENCODING_AES_KEY: ${{ secrets.WECOM_ENCODING_AES_KEY }} | |
| WECOM_CORP_ID: ${{ secrets.WECOM_CORP_ID }} | |
| WECOM_APP_AGENT_ID: ${{ secrets.WECOM_APP_AGENT_ID }} | |
| WECOM_APP_SECRET: ${{ secrets.WECOM_APP_SECRET }} | |
| JOB_RUNNER_INTERNAL_TOKEN: ${{ secrets.JOB_RUNNER_INTERNAL_TOKEN }} | |
| ALIBABA_CLOUD_ACCESS_KEY_ID: ${{ secrets.ALIBABA_CLOUD_ACCESS_KEY_ID }} | |
| ALIBABA_CLOUD_ACCESS_KEY_SECRET: ${{ secrets.ALIBABA_CLOUD_ACCESS_KEY_SECRET }} | |
| ALIBABA_CLOUD_ACCOUNT_ID: ${{ secrets.ALIBABA_CLOUD_ACCOUNT_ID }} | |
| BACKEND_COMMIT_HASH: ${{ github.sha }} | |
| GITHUB_EVENT_BEFORE: ${{ github.event.before }} | |
| PARTNERUP_ENVIRONMENT: ${{ github.ref == 'refs/heads/master' && 'production' || 'staging' }} | |
| PUBLISH_LAYER_ONLY: ${{ github.event_name == 'workflow_dispatch' && inputs.publish_layer_only == true }} | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v6 | |
| with: | |
| fetch-depth: 0 | |
| - name: Setup pnpm | |
| uses: pnpm/action-setup@v6 | |
| - name: Setup Node.js | |
| uses: actions/setup-node@v6 | |
| with: | |
| node-version-file: .node-version | |
| cache: pnpm | |
| - name: Setup Python | |
| uses: actions/setup-python@v6 | |
| with: | |
| python-version: "3.x" | |
| - name: Deploy backend through repository script | |
| run: bash scripts/ci/fc/deploy_backend.sh | |
| - name: Create backend GitHub Release | |
| if: (github.event_name != 'workflow_dispatch' || inputs.publish_layer_only != true) && github.ref_name == 'master' | |
| uses: googleapis/release-please-action@v5 | |
| with: | |
| token: ${{ secrets.RELEASE_PLEASE_TOKEN || secrets.GITHUB_TOKEN }} | |
| config-file: .github/release-please-backend-github-release.json | |
| manifest-file: .release-please-manifest.json | |
| skip-github-pull-request: true |