blob: c91c437b8b22fbcfd85a9cf83aed57bb5e91b5c5 [file] [log] [blame]
# Copyright (c) 2020 Project CHIP Authors
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
name: Cirque
on:
push:
pull_request:
workflow_dispatch:
concurrency:
group: ${{ github.ref }}-${{ github.workflow }}-${{ (github.event_name == 'pull_request' && github.event.number) || (github.event_name == 'workflow_dispatch' && github.run_number) || github.sha }}
cancel-in-progress: true
jobs:
cirque:
name: Cirque
timeout-minutes: 90
env:
DOCKER_RUN_VERSION: 0.6.06
GITHUB_CACHE_PATH: /tmp/cirque-cache/
runs-on: ubuntu-latest
if: github.actor != 'restyled-io[bot]'
# need to run with privilege, which isn't supported by job.XXX.contaner
# https://github.com/actions/container-action/issues/2
# container:
# image: connectedhomeip/chip-build-cirque:0.6.06
# volumes:
# - "/tmp:/tmp"
# - "/dev/pts:/dev/pts"
# env:
# LOG_DIR: /tmp/cirque_test_output/
# CLEANUP_DOCKER_FOR_CI: 1
# options: "--privileged"
steps:
- uses: Wandalen/wretry.action@v1.0.15
name: Checkout
with:
action: actions/checkout@v3
with: |
token: ${{ github.token }}
attempt_limit: 3
attempt_delay: 2000
- name: Checkout submodules
run: scripts/checkout_submodules.py --shallow --platform linux
- name: Get cirque cache key
id: cirque-key
run: |
echo "::set-output name=val::$(scripts/tests/cirque_tests.sh cachekeyhash)"
- name: Cache
uses: actions/cache@v2
if: ${{ !env.ACT }}
id: cache
with:
path: ${{ env.GITHUB_CACHE_PATH }}
key: ${{ runner.os }}-cirque-${{ steps.cirque-key.outputs.val }}
restore-keys: |
${{ runner.os }}-cirque-
- name: Bootstrap
timeout-minutes: 15
run: |
integrations/docker/images/chip-build-cirque/run.sh \
--env GITHUB_ACTION_RUN=1 \
--env GITHUB_CACHE_PATH=${{ env.GITHUB_CACHE_PATH }} \
--volume /tmp:/tmp \
-- sh -c '\
git config --global --add safe.directory "*" \
&& scripts/build/gn_bootstrap.sh \
'
- name: Cirque Bootstrap
timeout-minutes: 15
run: |
integrations/docker/images/chip-build-cirque/run.sh \
--env GITHUB_ACTION_RUN=1 \
--env GITHUB_CACHE_PATH=${{ env.GITHUB_CACHE_PATH }} \
--volume /tmp:/tmp \
-- scripts/tests/cirque_tests.sh bootstrap
- name: Artifact suffix
id: outsuffix
uses: haya14busa/action-cond@v1.0.0
if: ${{ !env.ACT }}
with:
cond: ${{ github.event.pull_request.number == '' }}
if_true: "${{ github.sha }}"
if_false: "pull-${{ github.event.pull_request.number }}"
- name: Build Binaries
timeout-minutes: 30
run: |
integrations/docker/images/chip-build-cirque/run.sh \
--env GITHUB_ACTION_RUN=1 \
--env GITHUB_CACHE_PATH=${{ env.GITHUB_CACHE_PATH }} \
--volume /tmp:/tmp \
-- sh -c '\
git config --global --add safe.directory "*" \
&& scripts/build/gn_gen_cirque.sh
'
- name: Run Tests
timeout-minutes: 45
run: |
integrations/docker/images/chip-build-cirque/run.sh \
--env LOG_DIR=/tmp/cirque_test_output \
--env CLEANUP_DOCKER_FOR_CI=1 \
--env GITHUB_ACTION_RUN=1 \
--privileged \
--volume /tmp:/tmp \
--volume /dev/pts:/dev/pts \
-- scripts/tests/cirque_tests.sh run_all_tests
- name: Uploading Binaries
uses: actions/upload-artifact@v2
if: ${{ always() && !env.ACT }}
with:
name: cirque_log-${{steps.outsuffix.outputs.value}}-logs
path: /tmp/cirque_test_output/