Skip to content

Commit

Permalink
Update webrtc with latest version m121 (#11)
Browse files Browse the repository at this point in the history
* Update README.md

* Update CMakeLists.txt

* Update VERSION

* Update build_and_release.yml

Try maximize disk space

* Update build_and_release.yml

* Update build_and_release.yml

* Update build_and_release.yml

Updated with latest versions

* Update build_and_release.yml

Updated.

* Update build_and_release.yml

fix versions

* Delete .github/workflows/build_only.yml

Unused

* Update test_build_windows.yml

Updating Windows test build

* Update build_and_release.yml

* Update build_and_release.yml

* Update build_and_release.yml

* Update build_and_release.yml

* Testing build with docker

* Automatic run

* Try args

* Full workflow dispatch

* Get current branch

* Set branch name

* Testing branch name

* Testing branch name

* Testing branch name

* Testing branch name

* Fix path

* Using volume

* Volume

* Putting back arm

* Using python3

* Use only 2 threads

* Maximize space

* Adding space to root

* Adding space to root

* Testing without neon

* Update generate_ninja_files.bash

Testing with is_clang=true

* Trying rtc_build_tools=true for arm64

* Downgrade webrtc version.

* Remove arm64 tests with clang.

* Fix clang flag.

* Revert "Downgrade webrtc version."

This reverts commit 0a57728.

* Disable libaom

* Revert "Disable libaom"

This reverts commit fab91dd.

* Update CMakeLists.txt

Testing compilation.

* M118

* M116

* Fail fast = false

* try disable use_jumbo_build=false

* Testing ffmpeg setup to Firefox

* Update generate_ninja_files.bash

* Trying to fetch like webrtc_bin repo

* Trying build with clang on arm

* Trying newer compilers

* Trying disabling AV1

* Update build_docker_linux.yml

* Put back original compilers

* Trying disabling libaom

* Put back AV1

* Update build_and_release.yml

* Update build_and_release.yml

* Update Dockerfile

* Building using docker

* Only on workflow dispatch

* Fix get release url artifact

* Fix path

* Fix path

* Downgrade to 119.0.6045.215.

* Upgrade the version.

* Update build_and_release.yml

* rtc_include_builtin_video_codecs=true

* Removed unused flag

* Fix setoutput warnings

* Added example run from docker

* Fixed CR

* Removed unused patches

* Increase root size

---------

Co-authored-by: mamaheux <35638081+mamaheux@users.noreply.github.com>
Co-authored-by: Marc-Antoine Maheux <Marc-Antoine.Maheux@USherbrooke.ca>
  • Loading branch information
3 people authored Jan 9, 2024
1 parent c03add5 commit 7864595
Show file tree
Hide file tree
Showing 13 changed files with 258 additions and 209 deletions.
102 changes: 53 additions & 49 deletions .github/workflows/build_and_release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,20 +3,25 @@ name: build_and_release

on:
workflow_dispatch:
branches: [main]
inputs:
fail_fast:
description: "Should stop the workflow as soon as one configuration fails"
required: false
type: boolean
default: true

jobs:
create-release:
runs-on: ubuntu-20.04
runs-on: ubuntu-latest

steps:
- uses: actions/checkout@v2
- uses: actions/checkout@v4
with:
submodules: recursive

- name: Generate Version Output
id: generate_version_output
run: echo "::set-output name=version::$(cat VERSION)"
run: echo "version=$(cat VERSION)" >> $GITHUB_OUTPUT
shell: bash

- name: Print Version Information
Expand All @@ -40,39 +45,52 @@ jobs:
- name: Output Release URL File
run: echo "${{ steps.create_release.outputs.upload_url }}" > release_url.txt
- name: Save Release URL File for publish
uses: actions/upload-artifact@v2
uses: actions/upload-artifact@v4
with:
name: release_url
path: release_url.txt

build-linux:
needs: create-release
strategy:
fail-fast: false
matrix:
os: [ubuntu-20.04, ubuntu-22.04]
architecture: [amd64, arm64]
architecture: [arm64, amd64]
build-type: [Release, Debug]

runs-on: ${{ matrix.os }}
runs-on: ubuntu-22.04
steps:
- uses: actions/checkout@v2

- name: Maximize build space
uses: easimon/maximize-build-space@master
with:
root-reserve-mb: 40000
swap-size-mb: 1024
remove-dotnet: 'true'
remove-android: 'true'
remove-haskell: 'true'
remove-codeql: 'true'
remove-docker-images: 'true'

- uses: actions/checkout@v4
with:
submodules: recursive

- uses: actions/download-artifact@v2
- uses: actions/download-artifact@v4
with:
name: release_url

- name: Get Upload URL
id: get_release_info
run: |
echo "::set-output name=upload_url::$(cat release_url.txt)"
echo "upload_url=$(cat release_url.txt)" >> $GITHUB_OUTPUT
ls -l
cat release_url.txt
- name: Generate Version Output
id: generate_version_output
run: echo "::set-output name=version::$(cat VERSION)"
run: echo "version=$(cat VERSION)" >> $GITHUB_OUTPUT
shell: bash

- name: Print Version Information
Expand All @@ -82,43 +100,27 @@ jobs:
- name: Generate Release File Name
id: generate_release_file_name
run: |
echo "::set-output name=release_file_name::webrtc-native-build-${{ matrix.os }}-\
echo "release_file_name=webrtc-native-build-${{ matrix.os }}-\
${{ matrix.architecture }}-\
${{ matrix.build-type }}-\
${{ steps.generate_version_output.outputs.version }}"
- name: Print Release File Name
run: echo "Release File Name ${{ steps.generate_release_file_name.outputs.release_file_name }}"
shell: bash
${{ steps.generate_version_output.outputs.version }}" >> $GITHUB_OUTPUT
- name: Install system dependencies
- name: Generate Branch Name
id: generate_branch_name
run: |
sudo apt-get update
sudo apt-get install ninja-build cmake build-essential libssl-dev libboost-all-dev
sudo apt-get install libglib2.0-dev libgtk-3-dev libpulse-dev libasound2-dev
- name: Install cross compilation dependencies
run: |
sudo apt-get install g++-aarch64-linux-gnu gcc-aarch64-linux-gnu
sudo apt-get install gcc-arm-linux-gnueabihf g++-arm-linux-gnueabihf
if: matrix.architecture == 'arm64'

- name: Create build directory
working-directory: .
run: |
mkdir build
echo "branch_name=${GITHUB_REF#refs/heads/}" >> $GITHUB_OUTPUT
- name: Run CMake and build webrtc-native-build
working-directory: build
run: |
cmake ../ -DCMAKE_BUILD_TYPE=${{ matrix.build-type}} -DCMAKE_BUILD_ARCHITECTURE=${{ matrix.architecture }}
make -j2
make install
- name: Print Release File Name
run: echo "Release File Name ${{ steps.generate_release_file_name.outputs.release_file_name }} on branch ${{ steps.generate_branch_name.outputs.branch_name }}"
shell: bash

- name: Create Archive
working-directory: dist/${{ matrix.build-type }}
- name: Create and run Docker Image
working-directory: ./docker/${{ matrix.os }}
run: |
tar cvzf ${{ steps.generate_release_file_name.outputs.release_file_name }}.tar.gz webrtc-native-build-${{ steps.generate_version_output.outputs.version }}
docker buildx build -t webrtc --build-arg BUILD_TYPE=${{ matrix.build-type }} --build-arg BUILD_ARCHITECTURE=${{ matrix.architecture }} --build-arg BUILD_BRANCH=${{ steps.generate_branch_name.outputs.branch_name }} .
docker run --rm --volume $PWD:/data webrtc tar cvzf /data/${{ steps.generate_release_file_name.outputs.release_file_name }}.tar.gz ./
ls -l
shell: bash

- name: Upload Release Asset
id: upload-release-asset
Expand All @@ -127,37 +129,39 @@ jobs:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
upload_url: ${{ steps.get_release_info.outputs.upload_url }}
asset_path: dist/${{ matrix.build-type }}/${{ steps.generate_release_file_name.outputs.release_file_name }}.tar.gz
asset_path: ./docker/${{ matrix.os }}/${{ steps.generate_release_file_name.outputs.release_file_name }}.tar.gz
asset_name: ${{ steps.generate_release_file_name.outputs.release_file_name }}.tar.gz
asset_content_type: application/x-gzip

build-mac:
needs: create-release
strategy:
fail-fast: false
matrix:
os: [macos-11, macos-12]
os: [macos-11, macos-12, macos-13]
architecture: [osx64]
build-type: [Release, Debug]

runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v2
- uses: actions/checkout@v4
with:
submodules: recursive

- uses: actions/download-artifact@v2
- uses: actions/download-artifact@v4
with:
name: release_url

- name: Get Upload URL
id: get_release_info
run: |
echo "::set-output name=upload_url::$(cat release_url.txt)"
echo "upload_url=$(cat release_url.txt)" >> $GITHUB_OUTPUT
ls -l
cat release_url.txt
- name: Generate Version Output
id: generate_version_output
run: echo "::set-output name=version::$(cat VERSION)"

run: echo "version=$(cat VERSION)" >> $GITHUB_OUTPUT
shell: bash

- name: Print Version Information
Expand All @@ -167,10 +171,10 @@ jobs:
- name: Generate Release File Name
id: generate_release_file_name
run: |
echo "::set-output name=release_file_name::webrtc-native-build-${{ matrix.os }}-\
echo "release_file_name=webrtc-native-build-${{ matrix.os }}-\
${{ matrix.architecture }}-\
${{ matrix.build-type }}-\
${{ steps.generate_version_output.outputs.version }}"
${{ steps.generate_version_output.outputs.version }}" >> $GITHUB_OUTPUT
- name: Print Release File Name
run: echo "Release File Name ${{ steps.generate_release_file_name.outputs.release_file_name }}"
Expand Down
74 changes: 74 additions & 0 deletions .github/workflows/build_docker_linux.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,74 @@
# This workflow will create a release and build multiple versions of the webrtc library.
name: build_docker_linux

on:
workflow_dispatch:
inputs:
fail_fast:
description: "Should stop the workflow as soon as one configuration fails"
required: false
type: boolean
default: false

jobs:
build-linux:
strategy:
fail-fast: false
matrix:
os: [ubuntu-20.04, ubuntu-22.04]
architecture: [arm64, amd64]
build-type: [Release, Debug]

runs-on: ubuntu-22.04
steps:

- name: Maximize build space
uses: easimon/maximize-build-space@master
with:
root-reserve-mb: 40000
swap-size-mb: 1024
remove-dotnet: 'true'
remove-android: 'true'
remove-haskell: 'true'
remove-codeql: 'true'
remove-docker-images: 'true'

- uses: actions/checkout@v4
with:
submodules: recursive

- name: Generate Version Output
id: generate_version_output
run: echo "version=$(cat VERSION)" >> $GITHUB_OUTPUT
shell: bash

- name: Print Version Information
run: echo "Version ${{ steps.generate_version_output.outputs.version }}"
shell: bash

- name: Generate Release File Name
id: generate_release_file_name
run: |
echo "release_file_name=webrtc-native-build-${{ matrix.os }}-\
${{ matrix.architecture }}-\
${{ matrix.build-type }}-\
${{ steps.generate_version_output.outputs.version }}" >> $GITHUB_OUTPUT
- name: Generate Branch Name
id: generate_branch_name
run: |
echo "branch_name=${GITHUB_REF#refs/heads/}" >> $GITHUB_OUTPUT
- name: Print Release File Name
run: echo "Release File Name ${{ steps.generate_release_file_name.outputs.release_file_name }} on branch ${{ steps.generate_branch_name.outputs.branch_name }}"
shell: bash

- name: Create and run Docker Image
working-directory: ./docker/${{ matrix.os }}
run: |
docker buildx build -t webrtc --build-arg BUILD_TYPE=${{ matrix.build-type }} --build-arg BUILD_ARCHITECTURE=${{ matrix.architecture }} --build-arg BUILD_BRANCH=${{ steps.generate_branch_name.outputs.branch_name }} .
docker run --rm --volume $PWD:/data webrtc tar cvzf /data/${{ steps.generate_release_file_name.outputs.release_file_name }}.tar.gz ./webrtc-native-build-${{ steps.generate_version_output.outputs.version }}
ls -l
shell: bash

Loading

0 comments on commit 7864595

Please sign in to comment.