This repository has been archived by the owner on Nov 26, 2024. It is now read-only.
-
-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy path.gitlab-ci.yml
147 lines (136 loc) · 4.6 KB
/
.gitlab-ci.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
image: ubuntu:latest
variables:
GIT_SUBMODULE_STRATEGY: recursive
stages:
- prepare-environment
- generate-docs
- build-compiler
- compile-gnuefi
- build-os
prepare:
stage: prepare-environment
script:
- apt-get update
- apt-get install -y git
- git submodule update --init --recursive
- echo "TOOLS_LOCK_HASH=$(git hash-object tools/Makefile)" >> vars.env
- echo "GNUEFI_LOCK_HASH=$(git hash-object Lynx/UEFI/Makefile)" >> vars.env
artifacts:
reports:
dotenv: vars.env
docs:
stage: generate-docs
script:
- apt-get update
- apt-get install -y doxygen make
- make doxygen
- cp -r tools/website/* doxygen-doc/
artifacts:
paths:
- doxygen-doc/
compiler:
stage: build-compiler
cache:
key: $PACKAGE_LOCK_HASH
paths:
- tools/cross/
script:
- apt-get update
- ln -fs /usr/share/zoneinfo/America/New_York /etc/localtime
- DEBIAN_FRONTEND=noninteractive apt-get install -y build-essential bison flex libgmp3-dev libmpc-dev libmpfr-dev texinfo libzstd-dev libisl-dev autoconf m4 automake gettext gperf dejagnu guile-3.0 guile-3.0-dev expect tcl autogen tex-common sphinx-common git ssh diffutils patch
- make --quiet -C tools __clone_all_no_qemu
- make --quiet -C tools do_binutils64
- make --quiet -C tools do_binutils32
- make --quiet -C tools do_binutilsarm64
- make --quiet -C tools do_gcc64
- make --quiet -C tools do_gcc32
- make --quiet -C tools do_gccarm64
- make --quiet -C tools do_toolchain_binutils64
- make --quiet -C tools do_toolchain_gcc64
- make --quiet -C tools do_toolchain_binutils32
- make --quiet -C tools do_toolchain_gcc32
- cd tools && rm -rf binutils-gdb gcc qemu build-binutilsamd64 build-binutilsi386 build-binutilsarm64 build-gccamd64 build-gcci386 build-gccarm64 build-toolchain-binutils64 build-toolchain-gcc64 build-toolchain-binutils32 build-toolchain-gcc32
artifacts:
paths:
- tools/cross/
gnuefi:
stage: compile-gnuefi
cache:
key: $GNUEFI_LOCK_HASH
paths:
- Lynx/gnu-efi/
script:
- apt-get update
- apt-get install -y make gcc-mingw-w64-x86-64 gcc-mingw-w64-i686 mingw-w64
- make --quiet -C Lynx prepare
artifacts:
paths:
- Lynx/gnu-efi/
build64:
stage: build-os
dependencies:
- compiler
- gnuefi
script:
- apt-get update && apt-get install -y rustc xorriso mtools genisoimage ovmf nasm doxygen make gcc-mingw-w64-x86-64 gcc-mingw-w64-i686 mingw-w64
- make --quiet -C tools do_limine
- make --quiet -C Drivers prepare
- make --quiet -C Userspace prepare
- make --quiet -C Lynx prepare
- make --quiet -C Kernel prepare
- sed -i 's/.*OSARCH = .*/OSARCH = amd64/' ./Makefile.conf && cat Makefile.conf | grep OSARCH
- make build
- mv Fennix.iso Fennix-debug.iso
- make clean
- sed -i 's/.*DEBUG = .*/DEBUG = 0/' ./Makefile.conf && cat Makefile.conf | grep DEBUG
- make build
- mv Fennix.iso Fennix-release.iso
artifacts:
paths:
- Fennix-debug.iso
- Fennix-release.iso
build32:
stage: build-os
dependencies:
- compiler
- gnuefi
script:
- apt-get update && apt-get install -y rustc xorriso mtools genisoimage ovmf nasm doxygen make gcc-mingw-w64-x86-64 gcc-mingw-w64-i686 mingw-w64
- make --quiet -C tools do_limine
- make --quiet -C Drivers prepare
- make --quiet -C Userspace prepare
- make --quiet -C Lynx prepare
- make --quiet -C Kernel prepare
- sed -i 's/.*OSARCH = .*/OSARCH = i386/' ./Makefile.conf && cat Makefile.conf | grep OSARCH
- make build
- mv Fennix.iso Fennix-debug.iso
- make clean
- sed -i 's/.*DEBUG = .*/DEBUG = 0/' ./Makefile.conf && cat Makefile.conf | grep DEBUG
- make build
- mv Fennix.iso Fennix-release.iso
artifacts:
paths:
- Fennix-debug.iso
- Fennix-release.iso
buildarm64:
stage: build-os
dependencies:
- compiler
script:
- apt-get update && apt-get install -y rustc xorriso mtools genisoimage ovmf nasm doxygen make gcc-mingw-w64-x86-64 gcc-mingw-w64-i686 mingw-w64
- make --quiet -C tools do_limine
- make --quiet -C Drivers prepare
- make --quiet -C Userspace prepare
- make --quiet -C Lynx prepare
- make --quiet -C Kernel prepare
- sed -i 's/.*OSARCH = .*/OSARCH = arm64/' ./Makefile.conf && cat Makefile.conf | grep OSARCH
- make build
- mv Fennix.iso Fennix-debug.iso
- make clean
- sed -i 's/.*DEBUG = .*/DEBUG = 0/' ./Makefile.conf && cat Makefile.conf | grep DEBUG
- make build
- mv Fennix.iso Fennix-release.iso
artifacts:
paths:
- Fennix-debug.iso
- Fennix-release.iso