From 226bde59252c42c300b892f9371647b1eaf6fc45 Mon Sep 17 00:00:00 2001 From: Ramon Roche Date: Wed, 7 Aug 2024 10:13:18 -0700 Subject: [PATCH] ci: build groups workflow --- .github/workflows/build_all_targets.yml | 62 +++++++++++++++++++++++++ 1 file changed, 62 insertions(+) create mode 100644 .github/workflows/build_all_targets.yml diff --git a/.github/workflows/build_all_targets.yml b/.github/workflows/build_all_targets.yml new file mode 100644 index 0000000000..ab0ddbb5c3 --- /dev/null +++ b/.github/workflows/build_all_targets.yml @@ -0,0 +1,62 @@ +name: Build all targets + +on: + push: + branches: + - 'mrpollo/ci_runner_groups' + +jobs: + group_targets: + runs-on: ubuntu-latest + container: px4io/px4-dev-base-focal:2021-09-08 + outputs: + matrix: ${{ steps.set-matrix.outputs.matrix }} + steps: + - uses: actions/checkout@v1 + with: + token: ${{ secrets.ACCESS_TOKEN }} + - id: set-matrix + run: echo "::set-output name=matrix::$(./Tools/generate_board_targets_json.py --group)" + + setup: + runs-on: ubuntu-latest + needs: group_targets + strategy: + matrix: ${{ fromJson(needs.group_targets.outputs.matrix) }} + container: ${{ matrix.container }} + steps: + - uses: actions/checkout@v1 + with: + token: ${{ secrets.ACCESS_TOKEN }} + - name: ownership workaround + run: git config --system --add safe.directory '*' + - name: ccache setup timestamp + id: ccache_cache_timestamp + shell: cmake -P {0} + run: | + string(TIMESTAMP current_date "%Y-%m-%d-%H;%M;%S" UTC) + message("::set-output name=timestamp::${current_date}") + - name: ccache setup keys + uses: actions/cache@v2 + with: + path: ~/.ccache + key: ${{ matrix.arch }}-ccache-${{ steps.ccache_cache_timestamp.outputs.timestamp }} + restore-keys: ${{ matrix.arch }}-ccache- + - name: setup ccache + run: | + mkdir -p ~/.ccache + echo "base_dir = ${GITHUB_WORKSPACE}" > ~/.ccache/ccache.conf + echo "compression = true" >> ~/.ccache/ccache.conf + echo "compression_level = 6" >> ~/.ccache/ccache.conf + echo "max_size = 120M" >> ~/.ccache/ccache.conf + echo "hash_dir = false" >> ~/.ccache/ccache.conf + ccache -s + ccache -z + - name: build target group + run: | + for target in ${matrix.targets//,/ } + do + make $target + done + - name: ccache post-run + run: ccache -s