-
Notifications
You must be signed in to change notification settings - Fork 0
54 lines (48 loc) · 1.61 KB
/
Copy pathgen-arch-config.yml
File metadata and controls
54 lines (48 loc) · 1.61 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
name: Generate architecture config
on:
workflow_dispatch:
inputs:
arch:
description: "Target architecture"
required: true
type: choice
options: [arm64, riscv64]
kernel_version:
description: "Kernel version (e.g. 6.12.1)"
required: true
jobs:
gen-config:
name: Generate ${{ inputs.arch }} config
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6
- name: Install cross-compilation toolchain
run: |
sudo apt-get update -qq
if [[ "${{ inputs.arch }}" == "arm64" ]]; then
sudo apt-get install -y gcc-aarch64-linux-gnu
else
sudo apt-get install -y gcc-riscv64-linux-gnu
fi
sudo apt-get install -y build-essential bc bison flex \
libssl-dev libelf-dev libncurses-dev
- name: Fetch kernel source
run: bash kernel/fetch.sh MAIN
- name: Generate defconfig
run: |
cd kernel/src
case "${{ inputs.arch }}" in
arm64)
make ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- defconfig
cp .config ../../configs/base/aarch64.config
;;
riscv64)
make ARCH=riscv CROSS_COMPILE=riscv64-linux-gnu- defconfig
cp .config ../../configs/base/riscv64.config
;;
esac
- name: Upload generated config
uses: actions/upload-artifact@v7
with:
name: config-${{ inputs.arch }}-${{ inputs.kernel_version }}
path: configs/base/${{ inputs.arch == 'arm64' && 'aarch64' || 'riscv64' }}.config