sof/.github/workflows/installer.yml

65 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]
jobs:
checktree:
runs-on: ubuntu-22.04
strategy:
fail-fast: false
matrix: # just a vector in this case
make_env: [
IPC_VERSION= UNSIGNED_list='imx8' SIGNED_list=, # default version
]
steps:
- uses: actions/checkout@v3
# From time to time this will catch a git tag and change SOF_VERSION
with: {fetch-depth: 50, submodules: recursive}
- 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 .