如何在 expo/expo-github-action 中获取内部分发构建的链接

98次阅读
没有评论

问题描述

正在通过 GitHub Actions 和 EAS Build 构建 React Native Expo 应用的内部分发版本。工作流在推送时使用 expo/expo-github-action@v7 触发。构建完成后,操作日志会显示2个URL(以及2个QR码),可以从中下载 .apk.ipa 文件:
如何在 expo/expo-github-action 中获取内部分发构建的链接

用户希望能够以编程方式获取这些链接,以便在下一步中使用它们来通知 Slack 频道等操作。

解决方案

以下方案可能因版本变化或平台差异而略有不同,请确保在实施前仔细阅读相关文档。

使用 GitHub Actions 输出

GitHub Actions 允许你在工作流程中的一个步骤中将信息输出为变量,然后可以在后续步骤中使用这些变量。对于你的情况,你可以通过以下步骤获取构建链接:
1. 在你的 GitHub Actions 工作流程文件中(例如 .github/workflows/main.yml),找到执行构建的步骤。
2. 在构建步骤中,添加一个步骤来提取构建链接并将其输出为变量。你可以使用 shell 命令来提取链接,然后使用 echo 将其输出为变量。例如:
yaml
- name: Extract Build Links
run: |
# 提取.apk链接
APK_LINK=$(grep -oP "APK: \K.*" your-action-log-file.txt)
# 提取.ipa链接
IPA_LINK=$(grep -oP "IPA: \K.*" your-action-log-file.txt)
echo "APK_LINK=$APK_LINK" >> $GITHUB_ENV
echo "IPA_LINK=$IPA_LINK" >> $GITHUB_ENV

请将 your-action-log-file.txt 替换为你的操作日志文件的路径。
3. 在后续步骤中,你可以使用这些输出的变量。例如,你可以通过 ${{ env.APK_LINK }}${{ env.IPA_LINK }} 来获取链接。

通过上述步骤,你可以在 GitHub Actions 中提取构建链接并将其作为环境变量输出,然后在后续步骤中使用这些链接。

自动化通知到 Slack 频道

一旦你获得了构建链接,你可以使用 Slack 的 API 或现有的库来将通知发送到 Slack 频道。以下是一个简单的示例,演示如何使用 Webhook 将消息发送到 Slack:

- name: Notify Slack
  env:
    SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL }} # 在 GitHub 仓库的 Secrets 中设置 Webhook URL
  run: |
    curl -X POST -H 'Content-type: application/json' --data '{
      "text": "New build links:\nAPK: '${{ env.APK_LINK }}'\nIPA: '${{ env.IPA_LINK }}'"
    }' $SLACK_WEBHOOK_URL

在上面的示例中,我们假设你已经在 GitHub 仓库的 Secrets 中设置了一个名为 SLACK_WEBHOOK_URL 的 secret,其中包含 Slack 的 Webhook URL。

请注意,以上只是一个简单的示例,实际情况可能需要根据你的需求进行更多的定制和配置。

总结

通过 GitHub Actions 的输出功能,你可以在构建步骤中提取构建链接并将其作为环境变量输出,然后在后续步骤中使用这些链接。利用这些链接,你可以自动化通知到 Slack 频道或执行其他操作,从而更有效地管理构建和通知流程。记得根据你的实际需求和平台变化进行相应的调整和测试。

正文完