Using a matrix and job separation we can make the architectures compile parallel to eachother, hopefully reducing the time required for builds and also simplifying the process of building a single architecture. A problem that we encountered is that with Python the resulting packed tars are very large. Each release is in the order of tens of megabytes. Using artifacts in our pipeline can easily make us surpass the maximum size limit for free GitHub accounts (500 MB). Because of this, we use the regular non-parallel pipeline for release build. Releasing the version from the same job the build was performed in allows us to directly access the build files instead of using artifacts. Separated release and MR pipelines.
25 lines
472 B
YAML
25 lines
472 B
YAML
name: gdb-static-pr-pipeline
|
|
|
|
on:
|
|
pull_request:
|
|
branches:
|
|
- '*'
|
|
|
|
jobs:
|
|
build:
|
|
strategy:
|
|
matrix:
|
|
architecture: ["x86_64", "arm", "aarch64", "powerpc", "mips", "mipsel"]
|
|
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
with:
|
|
submodules: recursive
|
|
|
|
- name: Install dependencies
|
|
run: sudo apt-get install -y wget
|
|
|
|
- name: Build
|
|
run: make build-${{ matrix.architecture }} -j$((`nproc`+1))
|