Pin python dependencies to hashes and cleanup/unify python setup steps in various workflows. We now have one dependency file containing all requirements for github actions that is managed centrally with hashes. No direct pip installs are needed in workflow files and everything shall go via the requirements file. Pinning to specific version and hashes helps with preventing supply chain attacks. Signed-off-by: Anas Nashif <anas.nashif@intel.com>
71 lines
1.8 KiB
YAML
71 lines
1.8 KiB
YAML
# Copyright 2023 Google LLC
|
|
# SPDX-License-Identifier: Apache-2.0
|
|
|
|
name: Scripts tests
|
|
|
|
on:
|
|
push:
|
|
branches:
|
|
- main
|
|
- v*-branch
|
|
paths:
|
|
- 'scripts/build/**'
|
|
- '.github/workflows/scripts_tests.yml'
|
|
pull_request:
|
|
branches:
|
|
- main
|
|
- v*-branch
|
|
paths:
|
|
- 'scripts/build/**'
|
|
- '.github/workflows/scripts_tests.yml'
|
|
|
|
permissions:
|
|
contents: read
|
|
|
|
jobs:
|
|
scripts-tests:
|
|
name: Scripts tests
|
|
runs-on: ${{ matrix.os }}
|
|
strategy:
|
|
matrix:
|
|
python-version: ['3.10', '3.11', '3.12', '3.13']
|
|
os: [ubuntu-24.04]
|
|
steps:
|
|
- name: checkout
|
|
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
|
|
with:
|
|
ref: ${{ github.event.pull_request.head.sha }}
|
|
fetch-depth: 0
|
|
|
|
- name: Rebase
|
|
continue-on-error: true
|
|
env:
|
|
BASE_REF: ${{ github.base_ref }}
|
|
PR_HEAD: ${{ github.event.pull_request.head.sha }}
|
|
run: |
|
|
git config --global user.email "actions@zephyrproject.org"
|
|
git config --global user.name "Github Actions"
|
|
rm -fr ".git/rebase-apply"
|
|
rm -fr ".git/rebase-merge"
|
|
git rebase origin/${BASE_REF}
|
|
git clean -f -d
|
|
git log --graph --oneline HEAD...${PR_HEAD}
|
|
|
|
- name: Set up Python ${{ matrix.python-version }}
|
|
uses: actions/setup-python@42375524e23c412d93fb67b49958b491fce71c38 # v5.4.0
|
|
with:
|
|
python-version: ${{ matrix.python-version }}
|
|
cache: pip
|
|
cache-dependency-path: scripts/requirements-actions.txt
|
|
|
|
- name: Install Python packages
|
|
run: |
|
|
pip install -r scripts/requirements-actions.txt --require-hashes
|
|
|
|
- name: Run pytest
|
|
env:
|
|
ZEPHYR_BASE: ./
|
|
run: |
|
|
echo "Run script tests"
|
|
pytest ./scripts/build
|