diff --git a/.github/test-spec.yml b/.github/test-spec.yml index 45c417a90227..5eb0ef5a45b6 100644 --- a/.github/test-spec.yml +++ b/.github/test-spec.yml @@ -1,11 +1,12 @@ # This is the Jenkins ci variant of the .github/labler.yaml +# New comment to trigger yamllint "__EXCLUDE__": - "**/VERSION" - "**/*.rst" -"CI-run-twister": - - any: +"CI-run-twister" + - any: - "!.github/**/*" - "!.vscode/**/*" - "!doc/**/*" diff --git a/.github/workflows/lint-yaml.yml b/.github/workflows/lint-yaml.yml new file mode 100644 index 000000000000..a8b297a53cf7 --- /dev/null +++ b/.github/workflows/lint-yaml.yml @@ -0,0 +1,12 @@ +--- +name: Lint yaml files + +on: + pull_request: + +jobs: + lint_yml: + runs-on: ubuntu-latest + steps: + - name: Execute yamllint + uses: nrfconnect/action-yamllint@main diff --git a/.github/workflows/twister-clang.yml b/.github/workflows/twister-clang.yml new file mode 100644 index 000000000000..f8a0687c1618 --- /dev/null +++ b/.github/workflows/twister-clang.yml @@ -0,0 +1,74 @@ +# Copyright (c) 2025, Nordic Semiconductor ASA +# SPDX-License-Identifier: Apache-2.0 + +name: Twister Unity Tests + +on: + pull_request: + types: [push, opened, reopened, synchronize] + + workflow_dispatch: + +jobs: + twister_job: + name: Run Twister patch series (PR) + runs-on: + - runs-on=${{ github.run_id }} + - runner=4cpu-linux-x64 + # Keep aligned with target NCS version + container: ghcr.io/nrfconnect/sdk-nrf-toolchain:v2.9.1 + defaults: + run: + # Bash shell is needed to set toolchain related environment variables in docker container + # It is a workaround for GitHub Actions limitation https://github.com/actions/runner/issues/1964 + shell: bash + + steps: + - name: Checkout the code + uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4 + with: + path: nrf-lite + fetch-depth: 0 + + - name: restore-cache-sdk + id: cache-sdk + uses: actions/cache/restore@5a3ec84eff668545956fd18022155c47e93e2684 # v4 + with: + path: | + nrf + zephyr + modules + key: ${{ runner.os }}-nrf-sdk + + - name: Prepare west project + run: | + west init -l nrf-lite + west update -o=--depth=1 -n + + - name: Install requirements + run: | + apt-get update + apt-get install -y build-essential ninja-build gcc-multilib g++-multilib ruby + + - name: Run Twister + working-directory: nrf-lite + run: | + west twister -vc -p native_sim -T tests --enable-asan --enable-lsan --enable-ubsan + + - name: upload-logs + uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4 + if: ${{ !cancelled() }} + with: + name: twister-logs + path: nrf-lite/twister-out/**/*.log + retention-days: 5 + + - name: save-cache-sdk + if: always() && steps.cache-sdk.outputs.cache-hit != 'true' + uses: actions/cache/save@5a3ec84eff668545956fd18022155c47e93e2684 # v4 + with: + path: | + nrf + zephyr + modules + key: ${{ steps.cache-sdk.outputs.cache-primary-key }}