forked from TeraaBytee/kernel_builder
-
Notifications
You must be signed in to change notification settings - Fork 6
172 lines (166 loc) · 6.16 KB
/
main.yml
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
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
name: Building kernel
on: # [push]
# release:
# types: [published]
# push:
# branches:
# - master
# paths:
# - '.config'
# schedule:
# - cron: 0 8 * * 5
# Allows you to run this workflow manually from the Actions tab
workflow_dispatch:
inputs:
COMPILER:
description: 'compilers used'
required: true
default: 'Neutron-Clang'
KREPO:
description: 'kernel repo'
required: true
default: 'TelegramAt25/android_kernel_xiaomi_selene'
KBRANCH:
description: 'kernel branch'
required: true
default: 'niigo'
NOTES:
description: 'notes to print out'
required: false
default: ''
SUFFIX:
description: 'suffix to aplly to teh zip filename'
required: false
default: ''
ZREPO:
description: 'zipper repo'
required: false
default: ''
ZBRANCH:
description: 'zipper branch'
required: false
default: ''
KSU:
description: 'if dont want ksu then leave blank'
required: false
default: ''
TG_RECIPENT:
description: 'idk'
required: false
default: ''
CONTAINER:
description: 'if you know you know'
required: true
default: 'fedora:rawhide'
env:
BOT_TOKEN: ${{ secrets.BOT_TOKEN }}
CHAT_ID: ${{ secrets.CHAT_ID }}
REPO: ${{ github.event.inputs.KREPO }}
RUN_NUM: ${{ github.run_number }}_${{ github.run_attempt }}
KERNEL_BRANCH: ${{ github.event.inputs.KBRANCH }}
NOTE: ${{ github.event.inputs.NOTES }}
COMPILERS: ${{ github.event.inputs.COMPILER }}
PATCH_KSU: ${{ github.event.inputs.KSU }}
SUFFIX: ${{ github.event.inputs.SUFFIX }}
zipper_repo: ${{ github.event.inputs.ZREPO }}
zipper_branch: ${{ github.event.inputs.ZBRANCH }}
TZ: Asia/Ho_Chi_Minh
jobs:
build:
runs-on: ubuntu-latest
container:
image: ${{ github.event.inputs.CONTAINER }}
steps:
- name: checkout
uses: actions/checkout@master
- name: why
run: |
echo WORKFLOW_START=$(date +"%s") >> $GITHUB_ENV
ALT_RECIPENT=${{ github.event.inputs.TG_RECIPENT }}
if [ ! -z $ALT_RECIPENT ]; then
echo CHAT_ID="$ALT_RECIPENT" >> $GITHUB_ENV
fi
- name: start of workflow
run: |
bash tg_utils.sh msg "gh $RUN_NUM: workflow started"
- name: init build env
run: |
dnf group install development-tools -y
dnf install llvm lld bc bison ca-certificates curl flex glibc-devel.i686 glibc-devel binutils-devel openssl python3 python2 zstd clang gcc-arm-linux-gnu dtc libxml2 libarchive openssl-devel perl tomsfastmath-devel wget xz -y
ln -sf "/usr/bin/python3" /usr/bin/python
- name: show host info
run: |
bash tg_utils.sh msg "gh $RUN_NUM: build env initialized%nlgh $RUN_NUM: host: $(cat /etc/os-release | grep PRETTY_NAME | cut -d'=' -f2)%nlgh $RUN_NUM: free disk space: $(df --sync -BM --output=avail / | grep -v Avail)"
- name: print notes if exists
run: |
if [[ ! -z $NOTE ]]; then
bash tg_utils.sh msg "gh $RUN_NUM: $NOTE"
fi
- name: clone kernel source
run: |
bash tg_utils.sh msg "gh $RUN_NUM: cloning kernel source%nlgh $RUN_NUM: repo: $REPO%nlgh $RUN_NUM: branch: $KERNEL_BRANCH"
git clone --depth=1 --single-branch https://github.com/$REPO -b $KERNEL_BRANCH kernel
- name: print kernel info
run: |
cd kernel
source ../env
bash ../tg_utils.sh msg "gh $RUN_NUM: kernel name: ${kernel_name}%nlgh $RUN_NUM: kernel ver: ${kernel_ver}%nlgh $RUN_NUM: kernel head commit: ${kernel_head}%nlgh $RUN_NUM: defconfig: ${defconfig}"
- name: run compilation scripts
run: |
cd kernel
case $PATCH_KSU in
"both" )
bash ../tg_utils.sh msg "gh $RUN_NUM: running compilation script(s): $COMPILERS"
bash ../build.sh "$COMPILERS"
bash ../tg_utils.sh msg "gh $RUN_NUM: KernelSU patching enabled, patching"
bash ../ksu/applyPatches.sh
bash ../tg_utils.sh msg "gh $RUN_NUM: running compilation script(s): $COMPILERS"
bash ../build.sh "$COMPILERS"
;;
"" )
bash ../tg_utils.sh msg "gh $RUN_NUM: running compilation script(s): $COMPILERS"
bash ../build.sh "$COMPILERS"
;;
* )
bash ../tg_utils.sh msg "gh $RUN_NUM: KernelSU patching enabled, patching"
bash ../ksu/applyPatches.sh
bash ../tg_utils.sh msg "gh $RUN_NUM: running compilation script(s): $COMPILERS"
bash ../build.sh "$COMPILERS"
;;
esac
- name: print unotes if exists
run: |
if [[ ! -z $UNOTE ]]; then
bash tg_utils.sh msg "gh $RUN_NUM: $UNOTE"
fi
- name: upload
run: |
cd kernel
if [[ $(ls *.zip) ]]; then
for file in *.zip ; do
bash ../tg_utils.sh up "${file}" "$(cat "${file}.info")"
done
fi
if [[ $(ls *.log) ]]; then
for file in *.log ; do
if [[ -e "${file}.info" ]]; then
bash ../tg_utils.sh up "${file}" "$(cat "${file}.info")"
fi
done
fi
- name: print unotes if exists 2
run: |
if [[ ! -z $UNOTE ]]; then
bash tg_utils.sh msg "gh $RUN_NUM: $UNOTE"
fi
- name: if it fails
if: ${{ failure() }}
run: |
WORKFLOW_END=$(date +"%s")
WDIFF=$((WORKFLOW_END - WORKFLOW_START))
bash tg_utils.sh msg "gh $RUN_NUM: workflow failed in $((WDIFF / 60))m, $((WDIFF % 60))s"
- name: end of workflow
run: |
WORKFLOW_END=$(date +"%s")
WDIFF=$((WORKFLOW_END - WORKFLOW_START))
bash tg_utils.sh msg "gh $RUN_NUM: workflow ended in $((WDIFF / 60))m, $((WDIFF % 60))s"