-
Notifications
You must be signed in to change notification settings - Fork 75
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
[Actions] GitHub Actions will now also built upwards dependencies but…
… they won't block merging (#320) * Create Linux build template * Use the Linux build template * Adding ThunderClientLibraries to be built as well * Adding plugins and rdkservices to also be built * Updating the template to include Thunder one * Moving the dependencies from the main action to the template * No dependencies in templates * Reverting the dependencies to the main action file * ThunderLibraries do not depend on interfaces so no need to build them * Prep for pull request
- Loading branch information
1 parent
1018e3d
commit b938abf
Showing
2 changed files
with
100 additions
and
80 deletions.
There are no files selected for viewing
This file contains 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
This file contains 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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,88 @@ | ||
name: Build ThunderInterfaces on Linux | ||
|
||
on: | ||
workflow_call: | ||
|
||
jobs: | ||
ThunderInterfaces: | ||
|
||
runs-on: ubuntu-latest | ||
|
||
strategy: | ||
matrix: | ||
build_type: [Debug, Release, MinSizeRel] | ||
|
||
name: Build type - ${{matrix.build_type}} | ||
steps: | ||
- name: Install necessary packages | ||
uses: nick-fields/retry@v2 | ||
with: | ||
timeout_minutes: 10 | ||
max_attempts: 10 | ||
command: | | ||
sudo gem install apt-spy2 | ||
sudo apt-spy2 fix --commit --launchpad --country=US | ||
sudo apt-get update | ||
sudo apt install python3-pip | ||
pip install jsonref | ||
sudo apt install build-essential cmake ninja-build libusb-1.0-0-dev zlib1g-dev libssl-dev | ||
- name: Checkout Thunder | ||
uses: actions/checkout@v3 | ||
with: | ||
path: Thunder | ||
repository: rdkcentral/Thunder | ||
|
||
- name: Download artifacts | ||
uses: actions/download-artifact@v3 | ||
with: | ||
name: Thunder-${{matrix.build_type}}-artifact | ||
path: ${{matrix.build_type}} | ||
|
||
- name: Unpack files | ||
run: | | ||
tar -xvzf ${{matrix.build_type}}/${{matrix.build_type}}.tar.gz | ||
rm ${{matrix.build_type}}/${{matrix.build_type}}.tar.gz | ||
# ----- ThunderInterfaces ----- | ||
- name: Checkout ThunderInterfaces - default | ||
if: ${{ !contains(github.event.pull_request.body, '[DependsOn=ThunderInterfaces:') }} | ||
uses: actions/checkout@v3 | ||
with: | ||
path: ThunderInterfaces | ||
repository: rdkcentral/ThunderInterfaces | ||
|
||
- name: Regex ThunderInterfaces | ||
if: contains(github.event.pull_request.body, '[DependsOn=ThunderInterfaces:') | ||
id: thunderinterfaces | ||
uses: AsasInnab/regex-action@v1 | ||
with: | ||
regex_pattern: '(?<=\[DependsOn=ThunderInterfaces:).*(?=\])' | ||
regex_flags: 'gim' | ||
search_string: ${{github.event.pull_request.body}} | ||
|
||
- name: Checkout ThunderInterfaces - ${{steps.thunderinterfaces.outputs.first_match}} | ||
if: contains(github.event.pull_request.body, '[DependsOn=ThunderInterfaces:') | ||
uses: actions/checkout@v3 | ||
with: | ||
path: ThunderInterfaces | ||
repository: rdkcentral/ThunderInterfaces | ||
ref: ${{steps.thunderinterfaces.outputs.first_match}} | ||
|
||
# ----- Building ----- | ||
- name: Build ThunderInterfaces | ||
run: | | ||
cmake -G Ninja -S ThunderInterfaces -B ${{matrix.build_type}}/build/ThunderInterfaces \ | ||
-DCMAKE_CXX_FLAGS="-Wall -Wextra -Wpedantic -Werror" \ | ||
-DCMAKE_INSTALL_PREFIX="${{matrix.build_type}}/install/usr" \ | ||
-DCMAKE_MODULE_PATH="${PWD}/${{matrix.build_type}}/install/usr/include/WPEFramework/Modules" | ||
cmake --build ${{matrix.build_type}}/build/ThunderInterfaces --target install | ||
- name: Tar files | ||
run: tar -czvf ${{matrix.build_type}}.tar.gz ${{matrix.build_type}} | ||
|
||
- name: Upload | ||
uses: actions/upload-artifact@v3 | ||
with: | ||
name: ThunderInterfaces-${{matrix.build_type}}-artifact | ||
path: ${{matrix.build_type}}.tar.gz |