Skip to content

Commit b3a5daa

Browse files
authored
Gh actions (#9)
* remove xcframework * add gitgub actions and build scripts
1 parent 2f3da05 commit b3a5daa

File tree

269 files changed

+626
-13244
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

269 files changed

+626
-13244
lines changed
+197
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,197 @@
1+
name: Release last WebRTC milestone
2+
3+
on:
4+
schedule:
5+
- cron: '0 0 * * *'
6+
7+
workflow_dispatch:
8+
9+
env:
10+
current_release_milestone:
11+
current_release_branch:
12+
next_release_milestone:
13+
next_release_branch:
14+
should_build: ${{ false }}
15+
should_build_2: ${{ false }}
16+
output_name:
17+
next_release_tag:
18+
next_release_name:
19+
20+
output_dir: "./out"
21+
22+
IOS_32_BIT: ${{ true }}
23+
ENABLE_IOS_BITCODE: ${{ true }}
24+
25+
jobs:
26+
27+
build:
28+
runs-on: macos-latest
29+
30+
steps:
31+
- uses: actions/checkout@v2
32+
33+
- name: GH Auth
34+
run: |
35+
echo ${{ secrets.GITHUB_TOKEN }} >> token.txt
36+
gh auth login --with-token < token.txt
37+
rm token.txt
38+
39+
- name: Getting WebRTC release
40+
run: |
41+
IFS=$'.' current_release_tag=($(gh api repos/${{ github.repository }}/releases | jq -r ".[0].tag_name"))
42+
milestones=$( curl -sL "https://chromiumdash.appspot.com/fetch_milestones")
43+
echo "current_release_milestone=${current_release_tag[0]:-0}" >> $GITHUB_ENV
44+
echo "current_release_branch=${current_release_tag[1]:-0}" >> $GITHUB_ENV
45+
echo "next_release_milestone=$(echo $milestones | jq -r ".[0].milestone")" >> $GITHUB_ENV
46+
echo "next_release_branch=$(echo $milestones | jq -r ".[0].webrtc_branch")" >> $GITHUB_ENV
47+
48+
- name: Setup enviroment
49+
run: |
50+
echo "should_build=${{ env.next_release_branch > env.current_release_branch }}" >> $GITHUB_ENV
51+
echo "output_name=WebRTC-M${{ env.next_release_milestone }}.xcframework.zip" >> $GITHUB_ENV
52+
echo "next_release_name=M${{ env.next_release_milestone }}" >> $GITHUB_ENV
53+
echo "next_release_tag=${{ env.next_release_milestone }}.${{ env.next_release_branch }}.0" >> $GITHUB_ENV
54+
55+
56+
- name: Create branch
57+
if: env.should_build == 'true'
58+
run: |
59+
git config --local user.email "${{ github.actor }}[bot]@users.noreply.github.com"
60+
git config --local user.name "github-actions[bot]"
61+
62+
git branch M${{ env.next_release_milestone }} -f
63+
git checkout M${{ env.next_release_milestone }}
64+
65+
remote_repo="https://${{ github.actor }}:${{ secrets.GITHUB_TOKEN }}@github.com/${{ github.repository }}.git"
66+
67+
git push "${remote_repo}" "M${{ env.next_release_milestone }}" --force --follow-tags --tags
68+
69+
mkdir "${{ env.output_dir }}"
70+
71+
72+
- name: Checkout WebRTC
73+
if: env.should_build == 'true'
74+
run: |
75+
source "${GITHUB_WORKSPACE}/scripts/checkout_webrtc.sh";
76+
echo "${PATH}" >> $GITHUB_PATH
77+
echo ::set-output name=should_build::false
78+
env:
79+
WEBRTC_BRANCH: ${{ env.next_release_branch }}
80+
81+
- name: Build ios x86 simulator
82+
if: env.should_build == 'true' && env.IOS_32_BIT == 'true'
83+
run: |
84+
cd src
85+
source "${GITHUB_WORKSPACE}/scripts/build_webrtc.sh"
86+
env:
87+
TARGET_OS: "ios"
88+
TARGET_CPU: "x86"
89+
ENVIROMENT: "simulator"
90+
91+
- name: Build ios x64 simulator
92+
if: env.should_build == 'true'
93+
run: |
94+
cd src
95+
source "${GITHUB_WORKSPACE}/scripts/build_webrtc.sh"
96+
env:
97+
TARGET_OS: "ios"
98+
TARGET_CPU: "x64"
99+
ENVIROMENT: "simulator"
100+
101+
- name: Build ios arm64 simulator
102+
if: env.should_build == 'true'
103+
run: |
104+
cd src
105+
source "${GITHUB_WORKSPACE}/scripts/build_webrtc.sh"
106+
env:
107+
TARGET_OS: "ios"
108+
TARGET_CPU: "arm64"
109+
ENVIROMENT: "simulator"
110+
111+
- name: Build ios arm device
112+
if: env.should_build == 'true' && env.IOS_32_BIT == 'true'
113+
run: |
114+
cd src
115+
source "${GITHUB_WORKSPACE}/scripts/build_webrtc.sh"
116+
env:
117+
TARGET_OS: "ios"
118+
TARGET_CPU: "arm"
119+
ENVIROMENT: "device"
120+
121+
- name: Build ios arm64 device
122+
if: env.should_build == 'true'
123+
run: |
124+
cd src
125+
source "${GITHUB_WORKSPACE}/scripts/build_webrtc.sh"
126+
env:
127+
TARGET_OS: "ios"
128+
TARGET_CPU: "arm64"
129+
ENVIROMENT: "device"
130+
131+
- name: Build mac x64
132+
if: env.should_build == 'true'
133+
run: |
134+
cd src
135+
source "${GITHUB_WORKSPACE}/scripts/build_webrtc.sh"
136+
env:
137+
TARGET_OS: "mac"
138+
TARGET_CPU: "x64"
139+
140+
- name: Build mac arm64
141+
if: env.should_build == 'true'
142+
run: |
143+
cd src
144+
source "${GITHUB_WORKSPACE}/scripts/build_webrtc.sh"
145+
env:
146+
TARGET_OS: "mac"
147+
TARGET_CPU: "arm64"
148+
149+
- name: Create XCFramefork
150+
id: create_xcframework
151+
if: env.should_build == 'true'
152+
run: |
153+
source "${GITHUB_WORKSPACE}/scripts/create_xcframework.sh"
154+
cd "${{ env.output_dir }}"
155+
zip --symlinks -r ${{ env.output_name }} WebRTC.xcframework/
156+
CHECKSUM=$(shasum -a 256 ${{ env.output_name }} | awk '{ print $1 }')
157+
158+
echo ::set-output name=checksum::$CHECKSUM
159+
env:
160+
XCFRAMEWORK_NAME: "WebRTC"
161+
PLISTBUDDY: "/usr/libexec/PlistBuddy"
162+
163+
# - name: Test Create XCFramefork
164+
# id: create_xcframework
165+
# if: env.should_build == 'true'
166+
# run: |
167+
# echo "Test" >> "${{ env.output_dir }}/${{ env.output_name }}"
168+
# CHECKSUM=$(shasum -a 256 "${{ env.output_dir }}/${{ env.output_name }}" | awk '{ print $1 }')
169+
# echo ${CHECKSUM}
170+
# echo ::set-output name=checksum::$CHECKSUM
171+
172+
- name: Update Package.swift
173+
if: env.should_build == 'true'
174+
run: |
175+
sed -i '' -E 's,url:.*WebRTC-M[0-9]+.xcframework.zip,url: "https://github.com/${{ github.repository }}/releases/download/${{ env.next_release_tag }}/${{ env.output_name }},g' Package.swift
176+
sed -i '' -E 's/checksum: .*/checksum: "${{ steps.create_xcframework.outputs.checksum }}"/g' Package.swift
177+
178+
- name: commit and push
179+
if: env.should_build == 'true'
180+
run: |
181+
git add Package.swift
182+
git commit -m "Update for release ${{ env.next_release_name }}"
183+
git tag "${{ env.next_release_tag }}"
184+
185+
remote_repo="https://${{ github.actor }}:${{ secrets.GITHUB_TOKEN }}@github.com/${{ github.repository }}.git"
186+
187+
git push "${remote_repo}" "M${{ env.next_release_milestone }}" --force --follow-tags --tags
188+
189+
- name: Create prerelease
190+
if: env.should_build == 'true'
191+
run: |
192+
echo "Release notes: N/A\nWebRTC Branch: [branch-heads/${{ env.next_release_branch }}](https://chromium.googlesource.com/external/webrtc/+log/branch-heads/${{ env.next_release_branch }})" >> changelog.md
193+
gh release create "${{ env.next_release_tag }}" -d -t "M${{ env.next_release_milestone }}" -F changelog.md "${{ env.output_dir }}/${{ env.output_name }}"
194+
195+
- name: Open PR
196+
if: env.should_build == 'true'
197+
run: gh pr create -f --head "M${{ env.next_release_milestone }}"

.github/workflows/build_mstones.yml

+198
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,198 @@
1+
name: Release WebRTC [86, 87, 88, 89, 90, 91]
2+
3+
on:
4+
workflow_dispatch:
5+
6+
env:
7+
current_release_milestone:
8+
current_release_branch:
9+
next_release_milestone:
10+
next_release_branch:
11+
should_build: ${{ false }}
12+
output_name:
13+
next_release_tag:
14+
next_release_name:
15+
16+
output_dir: "./out"
17+
18+
IOS_32_BIT: ${{ true }}
19+
ENABLE_IOS_BITCODE: ${{ true }}
20+
21+
jobs:
22+
23+
build:
24+
runs-on: macos-latest
25+
26+
strategy:
27+
matrix:
28+
milestone: [86, 87, 88, 89, 90, 91]
29+
30+
steps:
31+
- uses: actions/checkout@v2
32+
33+
- name: GH Auth
34+
run: |
35+
echo ${{ secrets.GITHUB_TOKEN }} >> token.txt
36+
gh auth login --with-token < token.txt
37+
rm token.txt
38+
39+
- name: Getting WebRTC release
40+
run: |
41+
IFS=$'.' current_release_tag=($(gh api repos/${{ github.repository }}/releases | jq -r ".[0].tag_name"))
42+
milestones=$( curl -sL "https://chromiumdash.appspot.com/fetch_milestones?mstone=${{ matrix.milestone }}")
43+
echo "current_release_milestone=${current_release_tag[0]:-0}" >> $GITHUB_ENV
44+
echo "current_release_branch=${current_release_tag[1]:-0}" >> $GITHUB_ENV
45+
echo "next_release_milestone=$(echo $milestones | jq -r ".[0].milestone")" >> $GITHUB_ENV
46+
echo "next_release_branch=$(echo $milestones | jq -r ".[0].webrtc_branch")" >> $GITHUB_ENV
47+
48+
49+
- name: Setup enviroment
50+
run: |
51+
echo "should_build=${{ env.next_release_branch > env.current_release_branch }}" >> $GITHUB_ENV
52+
echo "output_name=WebRTC-M${{ env.next_release_milestone }}.xcframework.zip" >> $GITHUB_ENV
53+
echo "next_release_name=M${{ env.next_release_milestone }}" >> $GITHUB_ENV
54+
echo "next_release_tag=${{ env.next_release_milestone }}.${{ env.next_release_branch }}.0" >> $GITHUB_ENV
55+
56+
57+
- name: Create branch
58+
if: env.should_build == 'true'
59+
run: |
60+
git config --local user.email "${{ github.actor }}[bot]@users.noreply.github.com"
61+
git config --local user.name "github-actions[bot]"
62+
63+
git branch M${{ env.next_release_milestone }} -f
64+
git checkout M${{ env.next_release_milestone }}
65+
66+
remote_repo="https://${{ github.actor }}:${{ secrets.GITHUB_TOKEN }}@github.com/${{ github.repository }}.git"
67+
68+
git push "${remote_repo}" "M${{ env.next_release_milestone }}" --force --follow-tags --tags
69+
70+
mkdir "${{ env.output_dir }}"
71+
72+
73+
- name: Checkout WebRTC
74+
if: env.should_build == 'true'
75+
run: |
76+
source "${GITHUB_WORKSPACE}/scripts/checkout_webrtc.sh";
77+
echo "${PATH}" >> $GITHUB_PATH
78+
echo ::set-output name=should_build::false
79+
env:
80+
WEBRTC_BRANCH: ${{ env.next_release_branch }}
81+
82+
- name: Build ios x86 simulator
83+
if: env.should_build == 'true' && env.IOS_32_BIT == 'true'
84+
run: |
85+
cd src
86+
source "${GITHUB_WORKSPACE}/scripts/build_webrtc.sh"
87+
env:
88+
TARGET_OS: "ios"
89+
TARGET_CPU: "x86"
90+
ENVIROMENT: "simulator"
91+
92+
- name: Build ios x64 simulator
93+
if: env.should_build == 'true'
94+
run: |
95+
cd src
96+
source "${GITHUB_WORKSPACE}/scripts/build_webrtc.sh"
97+
env:
98+
TARGET_OS: "ios"
99+
TARGET_CPU: "x64"
100+
ENVIROMENT: "simulator"
101+
102+
- name: Build ios arm64 simulator
103+
if: env.should_build == 'true'
104+
run: |
105+
cd src
106+
source "${GITHUB_WORKSPACE}/scripts/build_webrtc.sh"
107+
env:
108+
TARGET_OS: "ios"
109+
TARGET_CPU: "arm64"
110+
ENVIROMENT: "simulator"
111+
112+
- name: Build ios arm device
113+
if: env.should_build == 'true' && env.IOS_32_BIT == 'true'
114+
run: |
115+
cd src
116+
source "${GITHUB_WORKSPACE}/scripts/build_webrtc.sh"
117+
env:
118+
TARGET_OS: "ios"
119+
TARGET_CPU: "arm"
120+
ENVIROMENT: "device"
121+
122+
- name: Build ios arm64 device
123+
if: env.should_build == 'true'
124+
run: |
125+
cd src
126+
source "${GITHUB_WORKSPACE}/scripts/build_webrtc.sh"
127+
env:
128+
TARGET_OS: "ios"
129+
TARGET_CPU: "arm64"
130+
ENVIROMENT: "device"
131+
132+
- name: Build mac x64
133+
if: env.should_build == 'true'
134+
run: |
135+
cd src
136+
source "${GITHUB_WORKSPACE}/scripts/build_webrtc.sh"
137+
env:
138+
TARGET_OS: "mac"
139+
TARGET_CPU: "x64"
140+
141+
- name: Build mac arm64
142+
if: env.should_build == 'true'
143+
run: |
144+
cd src
145+
source "${GITHUB_WORKSPACE}/scripts/build_webrtc.sh"
146+
env:
147+
TARGET_OS: "mac"
148+
TARGET_CPU: "arm64"
149+
150+
- name: Create XCFramefork
151+
id: create_xcframework
152+
if: env.should_build == 'true'
153+
run: |
154+
source "${GITHUB_WORKSPACE}/scripts/create_xcframework.sh"
155+
cd "${{ env.output_dir }}"
156+
zip --symlinks -r ${{ env.output_name }} WebRTC.xcframework/
157+
CHECKSUM=$(shasum -a 256 ${{ env.output_name }} | awk '{ print $1 }')
158+
159+
echo ::set-output name=checksum::$CHECKSUM
160+
env:
161+
XCFRAMEWORK_NAME: "WebRTC"
162+
PLISTBUDDY: "/usr/libexec/PlistBuddy"
163+
164+
# - name: Test Create XCFramefork
165+
# id: create_xcframework
166+
# if: env.should_build == 'true'
167+
# run: |
168+
# echo "Test" >> "${{ env.output_dir }}/${{ env.output_name }}"
169+
# CHECKSUM=$(shasum -a 256 "${{ env.output_dir }}/${{ env.output_name }}" | awk '{ print $1 }')
170+
# echo ${CHECKSUM}
171+
# echo ::set-output name=checksum::$CHECKSUM
172+
173+
- name: Update Package.swift
174+
if: env.should_build == 'true'
175+
run: |
176+
sed -i '' -E 's,url:.*WebRTC-M[0-9]+.xcframework.zip,url: "https://github.com/${{ github.repository }}/releases/download/${{ env.next_release_tag }}/${{ env.output_name }},g' Package.swift
177+
sed -i '' -E 's/checksum: .*/checksum: "${{ steps.create_xcframework.outputs.checksum }}"/g' Package.swift
178+
179+
- name: commit and push
180+
if: env.should_build == 'true'
181+
run: |
182+
git add Package.swift
183+
git commit -m "Update for release ${{ env.next_release_name }}"
184+
git tag "${{ env.next_release_tag }}"
185+
186+
remote_repo="https://${{ github.actor }}:${{ secrets.GITHUB_TOKEN }}@github.com/${{ github.repository }}.git"
187+
188+
git push "${remote_repo}" "M${{ env.next_release_milestone }}" --force --follow-tags --tags
189+
190+
- name: Create prerelease
191+
if: env.should_build == 'true'
192+
run: |
193+
echo "Release notes: N/A\nWebRTC Branch: [branch-heads/${{ env.next_release_branch }}](https://chromium.googlesource.com/external/webrtc/+log/branch-heads/${{ env.next_release_branch }})" >> changelog.md
194+
gh release create "${{ env.next_release_tag }}" -d -t "M${{ env.next_release_milestone }}" -F changelog.md "${{ env.output_dir }}/${{ env.output_name }}"
195+
196+
- name: Open PR
197+
if: env.should_build == 'true'
198+
run: gh pr create -f --head "M${{ env.next_release_milestone }}"

0 commit comments

Comments
 (0)