mirror of
https://github.com/commaai/agnos-builder.git
synced 2026-08-22 00:33:52 +08:00
CI: add system build (#251)
* incremental caching * increase timeout to 40min; remove if: cache-hits * rm that * simplified to have one kernel cache * [upload] tag for upload-artifact * [upload] test * custom key/restore for ccache * removed if in get commit message * timeout to 60min * multiline support in LAST_COMMIT_MESSAGE * Update .github/workflows/build.yaml --------- Co-authored-by: Adeeb Shihadeh <adeebshihadeh@gmail.com>
This commit is contained in:
@@ -15,17 +15,31 @@ permissions:
|
||||
|
||||
jobs:
|
||||
build:
|
||||
name: build kernel #and system
|
||||
name: build kernel and system
|
||||
runs-on: namespace-profile-arm64-8x16-2004-caching
|
||||
timeout-minutes: 20
|
||||
timeout-minutes: 60
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
with:
|
||||
lfs: true
|
||||
|
||||
- name: get kernel submodule ref
|
||||
- name: Get commit message
|
||||
run: |
|
||||
{
|
||||
echo 'LAST_COMMIT_MESSAGE<<EOF'
|
||||
if [ "${{ github.event_name }}" == "push" ]; then
|
||||
echo "${{ github.event.head_commit.message }}"
|
||||
elif [ "${{ github.event_name }}" == "workflow_run" ]; then
|
||||
echo "${{ github.event.workflow_run.head_commit.message }}"
|
||||
elif [ "${{ github.event_name }}" == "pull_request" ]; then
|
||||
echo "$(curl -s '${{ github.event.pull_request.commits_url }}' | jq -r '.[-1].commit.message')"
|
||||
fi
|
||||
echo EOF
|
||||
} | tee -a $GITHUB_ENV
|
||||
|
||||
- name: Get kernel submodule ref
|
||||
id: kernel-submodule
|
||||
run: echo "ref=$(git ls-tree HEAD | awk '$4 == "agnos-kernel-sdm845"' | awk '{print $3}')" >> "$GITHUB_OUTPUT"
|
||||
run: echo "ref=$(git ls-tree HEAD | awk '$4 == "agnos-kernel-sdm845"' | awk '{print $3}')" | tee -a $GITHUB_OUTPUT
|
||||
|
||||
- name: Checkout agnos-kernel-sdm845
|
||||
uses: actions/checkout@v4
|
||||
@@ -34,6 +48,13 @@ jobs:
|
||||
ref: ${{ steps.kernel-submodule.outputs.ref }}
|
||||
path: agnos-kernel-sdm845
|
||||
|
||||
- name: ccache
|
||||
uses: hendrikmuhs/ccache-action@c92f40bee50034e84c763e33b317c77adaa81c92
|
||||
with:
|
||||
create-symlink: true
|
||||
key: kernel-ccache-${{ steps.kernel-submodule.outputs.ref }}
|
||||
restore-keys: kernel-ccache-
|
||||
|
||||
- name: Install dependencies
|
||||
run: sudo apt-get update && sudo apt-get install -y bc img2simg
|
||||
|
||||
@@ -42,29 +63,29 @@ jobs:
|
||||
with:
|
||||
default: '2.7.18'
|
||||
|
||||
- name: Cache kernel build
|
||||
uses: actions/cache@v4
|
||||
id: cache-kernel
|
||||
with:
|
||||
key: kernel-${{ steps.kernel-submodule.outputs.ref }}
|
||||
path: |
|
||||
agnos-kernel-sdm845/out
|
||||
restore-keys: kernel-
|
||||
|
||||
- name: Build kernel
|
||||
run: ./build_kernel.sh
|
||||
|
||||
- uses: actions/upload-artifact@v4
|
||||
- name: Upload artifact boot.img
|
||||
uses: actions/upload-artifact@v4
|
||||
if: "contains(env.LAST_COMMIT_MESSAGE, '[upload]')"
|
||||
with:
|
||||
name: boot.img
|
||||
path: output/boot.img
|
||||
- uses: actions/upload-artifact@v4
|
||||
|
||||
- name: Upload artifact kernel modules
|
||||
uses: actions/upload-artifact@v4
|
||||
if: "contains(env.LAST_COMMIT_MESSAGE, '[upload]')"
|
||||
with:
|
||||
name: kernel-modules
|
||||
path: output/*.ko
|
||||
|
||||
#- run: ./build_system.sh
|
||||
#- uses: actions/upload-artifact@v4
|
||||
# with:
|
||||
# name: system.img
|
||||
# path: output/system.img
|
||||
- name: Build system
|
||||
run: ./build_system.sh
|
||||
|
||||
- name: Upload artifact system.img
|
||||
uses: actions/upload-artifact@v4
|
||||
if: "contains(env.LAST_COMMIT_MESSAGE, '[upload]')"
|
||||
with:
|
||||
name: system.img
|
||||
path: output/system.img
|
||||
|
||||
Reference in New Issue
Block a user