WebRTC Release #92
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: WebRTC Release | |
| run-name: WebRTC Release | |
| env: | |
| XCODE_VERSION: 26.3 | |
| permissions: | |
| actions: read | |
| contents: write | |
| pull-requests: write | |
| on: | |
| workflow_dispatch: | |
| inputs: | |
| release_source: | |
| description: "Release source" | |
| required: true | |
| default: "build" | |
| type: choice | |
| options: | |
| - build | |
| - manual-build-artifact | |
| artifact_run_id: | |
| description: "Manual build run ID when release_source is manual-build-artifact" | |
| required: false | |
| default: "" | |
| type: string | |
| artifact_name: | |
| description: "Manual build artifact name" | |
| required: false | |
| default: "WebRTC.xcframework" | |
| type: string | |
| schedule: | |
| - cron: "0 12 * * *" | |
| jobs: | |
| Build-Script: | |
| runs-on: macos-latest | |
| env: | |
| GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
| steps: | |
| - name: Check out repository code | |
| uses: actions/checkout@v6 | |
| # WebRTC milestone branches ship with frozen Chromium buildtools that | |
| # only support the Xcode/SDK version current at the time of the branch | |
| # cut. Newer Xcode versions introduce SDK framework splits (e.g. | |
| # DarwinFoundation, UIUtilities) that break the build. Pin to the | |
| # version expected by the buildtools (see build/mac_toolchain.py in | |
| # the WebRTC source for each milestone). | |
| # | |
| # To find which Xcode version is available by which runner: | |
| # https://github.com/actions/runner-images/tree/main/images/macos | |
| - name: Setup Xcode | |
| if: ${{ github.event_name != 'workflow_dispatch' || inputs.release_source == 'build' }} | |
| run: sudo xcode-select -s /Applications/Xcode_${{ env.XCODE_VERSION }}.app | |
| - name: Validate manual build artifact input | |
| if: ${{ github.event_name == 'workflow_dispatch' && inputs.release_source == 'manual-build-artifact' }} | |
| run: | | |
| if [ -z "${{ inputs.artifact_run_id }}" ]; then | |
| echo "artifact_run_id is required when release_source is manual-build-artifact" | |
| exit 1 | |
| fi | |
| - name: Download manual build artifact | |
| if: ${{ github.event_name == 'workflow_dispatch' && inputs.release_source == 'manual-build-artifact' }} | |
| uses: actions/download-artifact@v6 | |
| with: | |
| name: ${{ inputs.artifact_name }} | |
| run-id: ${{ inputs.artifact_run_id }} | |
| github-token: ${{ secrets.GITHUB_TOKEN }} | |
| path: out | |
| - name: Set up Python 3.x | |
| uses: actions/setup-python@v6 | |
| with: | |
| python-version: "3.x" | |
| - name: Install dependencies | |
| run: pip install requests | |
| - name: Running WebRTC release checks | |
| run: | | |
| if [ -z "$RELEASE_ARTIFACT_DIR" ]; then | |
| sh scripts/clean.sh | |
| fi | |
| python -u scripts/release.py | |
| env: | |
| RELEASE_ARTIFACT_DIR: ${{ github.event_name == 'workflow_dispatch' && inputs.release_source == 'manual-build-artifact' && 'out' || '' }} |