mirror of https://github.com/thesofproject/sof.git
64 lines
2.1 KiB
YAML
64 lines
2.1 KiB
YAML
---
|
|
# Tools that can save round-trips to github and a lot of time:
|
|
#
|
|
# yamllint -f parsable this.yml
|
|
# pip3 install ruamel.yaml.cmd
|
|
# yaml merge-expand this.yml exp.yml && diff -w -u this.yml exp.yml
|
|
#
|
|
# github.com also has a powerful web editor that can be used without
|
|
# committing.
|
|
|
|
name: installer
|
|
|
|
# 'workflow_dispatch' allows running this workflow manually from the
|
|
# 'Actions' tab
|
|
# yamllint disable-line rule:truthy
|
|
on: [push, pull_request, workflow_dispatch, workflow_call]
|
|
|
|
jobs:
|
|
checktree:
|
|
runs-on: ubuntu-22.04
|
|
|
|
strategy:
|
|
fail-fast: false
|
|
matrix: # just a vector in this case
|
|
make_env: [
|
|
IPC_VERSION= UNSIGNED_list='imx8m' SIGNED_list=, # default version
|
|
]
|
|
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
with: {fetch-depth: 0, submodules: recursive, filter: 'tree:0'}
|
|
|
|
- name: docker
|
|
run: docker pull thesofproject/sof && docker tag thesofproject/sof sof
|
|
|
|
# -j3 tests the ability to build multiple platforms
|
|
# concurrently. It makes the build log unreadable, so retry with
|
|
# a single thread in case of failure
|
|
- name: build all and stage
|
|
env:
|
|
gh_make_env: ${{ matrix.make_env }}
|
|
# Use 'eval' to have two different levels of whitespace:
|
|
# 1. between vars, and 2. inside _lists. Quoting is hard, even
|
|
# harder through 'docker-run.sh'.
|
|
run: eval env_array=($gh_make_env) &&
|
|
./scripts/docker-run.sh
|
|
make -j3 -C installer/ tarball "${env_array[@]}" ||
|
|
VERBOSE=1 NO_PROCESSORS=1 USE_XARGS=no
|
|
./scripts/docker-run.sh
|
|
make -j1 -C installer/ tarball "${env_array[@]}"
|
|
|
|
- name: check staging tree
|
|
env:
|
|
gh_make_env: ${{ matrix.make_env }}
|
|
run: eval env_array=($gh_make_env) &&
|
|
make -C installer/ checktree "${env_array[@]}"
|
|
|
|
- name: test make cleanall
|
|
run: |
|
|
make -C installer cleanall
|
|
# Make sure there's nothing left
|
|
rm -rf scripts/kconfig/__pycache__/
|
|
! git status --porcelain --ignored | grep .
|