-
Notifications
You must be signed in to change notification settings - Fork 52
139 lines (135 loc) · 5.7 KB
/
sdk.yaml
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
# Copyright 2023, UNSW
#
# SPDX-License-Identifier: BSD-2-Clause
# It is to be noted that this CI workflow is temporary and simply attempts
# to build (but not test) the SDK. It is only for the purposes of seeing
# whether a particular commit has devastatingly broken the Microkit SDK
name: SDK
on:
# Run the SDK CI on any activity on the main branch as well as on any pull
# request activity (e.g when it is created and also when it is updated).
pull_request:
push:
branches: [ "main" ]
jobs:
build_linux_x64:
name: Build SDK (Linux x86-64)
runs-on: ubuntu-24.04
steps:
- name: Checkout Microkit repository
uses: actions/checkout@v4
with:
fetch-tags: true
- name: Checkout seL4 repository
uses: actions/checkout@v4
with:
repository: seL4/seL4
ref: microkit
path: seL4
- name: Install SDK dependencies
run: |
rustup target add x86_64-unknown-linux-musl
sudo apt update
sudo apt install software-properties-common
sudo add-apt-repository ppa:deadsnakes/ppa
sudo apt install \
gcc-riscv64-unknown-elf \
cmake pandoc device-tree-compiler ninja-build \
texlive-latex-base texlive-latex-recommended \
texlive-fonts-recommended texlive-fonts-extra \
libxml2-utils \
python3.9 python3-pip python3.9-venv \
qemu-system-arm qemu-system-misc \
- name: Install AArch64 GCC toolchain
run: |
wget -O aarch64-toolchain.tar.gz https://sel4-toolchains.s3.us-east-2.amazonaws.com/arm-gnu-toolchain-12.2.rel1-x86_64-aarch64-none-elf.tar.xz%3Frev%3D28d5199f6db34e5980aae1062e5a6703%26hash%3DF6F5604BC1A2BBAAEAC4F6E98D8DC35B
tar xf aarch64-toolchain.tar.gz
echo "$(pwd)/arm-gnu-toolchain-12.2.rel1-x86_64-aarch64-none-elf/bin" >> $GITHUB_PATH
- name: Set version
run: echo "SDK_VERSION=$(./ci/dev_version.sh)" >> $GITHUB_ENV
- name: Build SDK
run: |
python3.9 -m venv pyenv
./pyenv/bin/pip install --upgrade pip setuptools wheel
./pyenv/bin/pip install -r requirements.txt
./pyenv/bin/python build_sdk.py --sel4=seL4 --version ${{ env.SDK_VERSION }}
- name: Upload SDK
uses: actions/upload-artifact@v4
with:
name: microkit-sdk-${{ env.SDK_VERSION }}-linux-x86-64
path: release/microkit-sdk-${{ env.SDK_VERSION }}.tar.gz
build_macos_x64:
name: Build SDK (macOS x86-64)
runs-on: macos-14
steps:
- name: Checkout Microkit repository
uses: actions/checkout@v4
with:
fetch-tags: true
- name: Checkout seL4 repository
uses: actions/checkout@v4
with:
repository: seL4/seL4
ref: microkit
path: seL4
- name: Install SDK dependencies
run: |
brew tap riscv-software-src/riscv
brew install riscv-tools
brew install pandoc cmake dtc ninja qemu libxml2 [email protected] coreutils texlive qemu
- name: Install AArch64 GCC toolchain
run: |
wget -O aarch64-toolchain.tar.gz https://sel4-toolchains.s3.us-east-2.amazonaws.com/arm-gnu-toolchain-12.2.rel1-darwin-x86_64-aarch64-none-elf.tar.xz%3Frev%3D09b11f159fc24fdda01e05bb32695dd5%26hash%3D6AAF4239F28AE17389AB3E611DFFE0A6
tar xf aarch64-toolchain.tar.gz
echo "$(pwd)/arm-gnu-toolchain-12.2.rel1-darwin-x86_64-aarch64-none-elf/bin" >> $GITHUB_PATH
- name: Set version
run: echo "SDK_VERSION=$(./ci/dev_version.sh)" >> $GITHUB_ENV
- name: Build SDK
run: |
python3.9 -m venv pyenv
./pyenv/bin/pip install --upgrade pip setuptools wheel
./pyenv/bin/pip install -r requirements.txt
./pyenv/bin/python build_sdk.py --sel4=seL4 --version ${{ env.SDK_VERSION }}
- name: Upload SDK
uses: actions/upload-artifact@v4
with:
name: microkit-sdk-${{ env.SDK_VERSION }}-macos-x86-64
path: release/microkit-sdk-${{ env.SDK_VERSION }}.tar.gz
build_macos_arm64:
name: Build SDK (macOS ARM64)
runs-on: macos-14
steps:
- name: Checkout Microkit repository
uses: actions/checkout@v4
with:
fetch-tags: true
- name: Checkout seL4 repository
uses: actions/checkout@v4
with:
repository: seL4/seL4
ref: microkit
path: seL4
- name: Install SDK dependencies
run: |
rustup target add aarch64-apple-darwin
brew tap riscv-software-src/riscv
brew install riscv-tools
brew install pandoc cmake dtc ninja qemu libxml2 [email protected] coreutils texlive
- name: Install AArch64 GCC toolchain
run: |
wget -O aarch64-toolchain.tar.gz https://sel4-toolchains.s3.us-east-2.amazonaws.com/arm-gnu-toolchain-12.2.rel1-darwin-x86_64-aarch64-none-elf.tar.xz%3Frev%3D09b11f159fc24fdda01e05bb32695dd5%26hash%3D6AAF4239F28AE17389AB3E611DFFE0A6
tar xf aarch64-toolchain.tar.gz
echo "$(pwd)/arm-gnu-toolchain-12.2.rel1-darwin-x86_64-aarch64-none-elf/bin" >> $GITHUB_PATH
- name: Set version
run: echo "SDK_VERSION=$(./ci/dev_version.sh)" >> $GITHUB_ENV
- name: Build SDK
run: |
python3.9 -m venv pyenv
./pyenv/bin/pip install --upgrade pip setuptools wheel
./pyenv/bin/pip install -r requirements.txt
./pyenv/bin/python build_sdk.py --sel4=seL4 --version ${{ env.SDK_VERSION }}
- name: Upload SDK
uses: actions/upload-artifact@v4
with:
name: microkit-sdk-${{ env.SDK_VERSION }}-macos-aarch64
path: release/microkit-sdk-${{ env.SDK_VERSION }}.tar.gz