如何配置GitHub Actions预发布环境自定义URL为带PR号的指定格式?
GitHub Actions配置指引(适配pr[PR号].azurewebsites.net自定义域名)
Azure应用服务的默认访问域名格式为
<应用服务名称>.azurewebsites.net,因此核心配置逻辑是将预发布环境的应用服务名称设置为pr${PR编号},即可自动匹配你需要的URL格式。
1. 配置workflow触发规则
首先确保你的 workflow 仅在PR相关事件下触发,才能正常获取PR编号:
on: pull_request: types: [opened, synchronize, reopened] branches: - main # 替换为你的目标分支
2. 新增PR编号获取步骤
在部署任务中添加步骤,获取当前PR的编号并输出:
jobs: deploy-preview: runs-on: ubuntu-latest steps: - name: Checkout code uses: actions/checkout@v4 - name: Get PR number id: pr uses: actions/github-script@v6 with: script: | const prNumber = context.payload.pull_request?.number; if (!prNumber) throw new Error("Workflow only supports pull request events"); core.setOutput("pull_request_number", prNumber);
3. 构造应用服务名称变量
在后续步骤中直接使用输出的PR编号构造应用服务名称:
- name: Build React app env: # 构造你需要的应用服务名称,对应默认域名就是pr{PR号}.azurewebsites.net AZURE_WEBAPP_NAME: pr${{ steps.pr.outputs.pull_request_number }} run: | npm install npm run build
4. 部署到Azure应用服务
直接将构造好的应用服务名称传入Azure部署Action即可:
- name: Deploy to Azure Web App uses: azure/webapps-deploy@v2 with: app-name: pr${{ steps.pr.outputs.pull_request_number }} publish-profile: ${{ secrets.AZURE_PUBLISH_PROFILE }} # 提前在仓库Secrets配置对应Azure发布凭据 package: ./build # React项目构建后的输出目录
可选:PR关闭时清理临时环境
可以额外添加PR关闭时删除临时应用服务的步骤,避免资源浪费:
- name: Delete preview environment on PR close if: github.event.action == 'closed' run: | az webapp delete --name pr${{ steps.pr.outputs.pull_request_number }} --resource-group your-resource-group-name
该步骤需要提前配置Azure CLI登录权限
内容的提问来源于stack exchange,提问作者arunmmanoharan
相关产品推荐
相关产品推荐

