forked from torvalds/linux
-
Notifications
You must be signed in to change notification settings - Fork 1
110 lines (95 loc) · 3.36 KB
/
compile_kernel.yml
File metadata and controls
110 lines (95 loc) · 3.36 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
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
name: Build and Release Linux Kernel
on:
push:
branches:
- master
pull_request:
branches:
- master
workflow_dispatch:
jobs:
build:
runs-on: ubuntu-24.04-arm
steps:
- name: Checkout code
uses: actions/checkout@v3
- name: Install dependencies
run: |
sudo apt-get update
sudo apt-get install -y build-essential bc kmod cpio flex bison libssl-dev p7zip-full debhelper-compat gcc-aarch64-linux-gnu libdw-dev libelf-dev
- name: Build kernel
run: |
make ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- O=$PWD/OUT -j16 q_defconfig
make ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- O=$PWD/OUT -j6
make ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- O=$PWD/OUT -j6 modules_install INSTALL_MOD_PATH=$PWD/kernel_modules
make ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- O=$PWD/OUT -j6 headers_install INSTALL_HDR_PATH=$PWD/linux_headers
# Pack debs
make ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- O=$PWD/OUT -j$(nproc) q_defconfig bindeb-pkg
- name: Package kernel
run: |
mkdir -p kernel-package
mv OUT/arch/arm64/boot/Image kernel-package/
7z a kernel.7z -t7z kernel-package/*
- name: Package device tree
run: |
mkdir -p dtb-package
mv OUT/arch/arm64/boot/dts/*/*.dtb dtb-package/
7z a dtbs.7z -t7z dtb-package/*
- name: Package modules
run: |
tar zcvf modules.tar.gz kernel_modules/*
- name: Package debs
run: |
7z a linux_debs.7z -t7z linux*deb
- name: Set Release Tag and Name
id: set_tag_name
run: |
current_time=$(date +"%y.%U.%H.%M")
echo "TAG_NAME=release-${current_time}" >> $GITHUB_ENV
echo "RELEASE_NAME=Release ${current_time}" >> $GITHUB_ENV
- name: Create Release
id: create_release
uses: actions/create-release@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
tag_name: ${{ env.TAG_NAME }}
release_name: ${{ env.RELEASE_NAME }}
draft: false
prerelease: true
- name: Upload Kernel
uses: actions/upload-release-asset@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
upload_url: ${{ steps.create_release.outputs.upload_url }}
asset_path: kernel.7z
asset_name: kernel.7z
asset_content_type: application/x-7z-compressed
- name: Upload Device Tree
uses: actions/upload-release-asset@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
upload_url: ${{ steps.create_release.outputs.upload_url }}
asset_path: dtbs.7z
asset_name: dtbs.7z
asset_content_type: application/x-7z-compressed
- name: Upload Modules
uses: actions/upload-release-asset@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
upload_url: ${{ steps.create_release.outputs.upload_url }}
asset_path: modules.tar.gz
asset_name: modules.tar.gz
asset_content_type: application/x-7z-compressed
- name: Upload debs
uses: actions/upload-release-asset@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
upload_url: ${{ steps.create_release.outputs.upload_url }}
asset_path: linux_debs.7z
asset_name: linux_debs.7z
asset_content_type: application/x-7z-compressed