diff --git a/.github/workflows/Build ThunderInterfaces on Linux.yml b/.github/workflows/Build ThunderInterfaces on Linux.yml index f41b69fa..b922f380 100644 --- a/.github/workflows/Build ThunderInterfaces on Linux.yml +++ b/.github/workflows/Build ThunderInterfaces on Linux.yml @@ -5,92 +5,24 @@ on: branches: ["master"] pull_request: branches: ["master"] - workflow_call: jobs: + # change the user and branch name in each one after the templates are merged Thunder: - uses: rdkcentral/Thunder/.github/workflows/Build Thunder on Linux.yml@master + uses: VeithMetro/Thunder/.github/workflows/Linux build template.yml@development/actions ThunderInterfaces: needs: Thunder + uses: VeithMetro/ThunderInterfaces/.github/workflows/Linux build template.yml@development/actions - runs-on: ubuntu-latest + ThunderClientLibraries: + needs: ThunderInterfaces + uses: VeithMetro/ThunderClientLibraries/.github/workflows/Linux build template.yml@development/actions - strategy: - matrix: - build_type: [Debug, Release, MinSizeRel] + ThunderNanoServices: + needs: ThunderInterfaces + uses: VeithMetro/ThunderNanoServices/.github/workflows/Linux build template.yml@development/actions - 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 + ThunderNanoServicesRDK: + needs: ThunderInterfaces + uses: VeithMetro/ThunderNanoServicesRDK/.github/workflows/Linux build template.yml@development/actions diff --git a/.github/workflows/Linux build template.yml b/.github/workflows/Linux build template.yml new file mode 100644 index 00000000..03687347 --- /dev/null +++ b/.github/workflows/Linux build template.yml @@ -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