-
Notifications
You must be signed in to change notification settings - Fork 6
Expand file tree
/
Copy pathTaskfile.yml
More file actions
executable file
·81 lines (71 loc) · 3.03 KB
/
Copy pathTaskfile.yml
File metadata and controls
executable file
·81 lines (71 loc) · 3.03 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
# T3 Foundation Gemstone Project [t3gemstone.org]
# SPDX-License-Identifier: Apache-2.0
version: '3'
dotenv: ['.devbox/taskfile.env']
vars:
WORKDIR: '{{ .WORKDIR | default "/home/workdir" }}'
MACHINE: '{{ .MACHINE | default "t3-gem-o1" }}'
DISTRO_TYPE: '{{ .DISTRO_TYPE | default "minimal" }}'
DISTRO_BASE: '{{ .DISTRO_BASE | default "ubuntu" }}'
DISTRO_SUITE: '{{ .DISTRO_SUITE | default "jammy" }}'
DISTRO_ARCH: '{{ if eq .MACHINE "intel-corei7-64" }}amd64{{ else }}arm64{{ end }}'
IMG_RELEASE: '{{ .IMG_RELEASE | default "v2026.2" }}'
IMG_SIZE: '{{ .IMG_SIZE | default "4096M" }}'
IMG_DEPLOY_DIR: '{{ .WORKDIR }}/build/debos'
IMG_FILE_NAME: 'gemstone-{{ .DISTRO_TYPE }}-{{ .IMG_RELEASE }}-{{ .DISTRO_BASE }}-{{ .DISTRO_SUITE }}-{{ .MACHINE }}.img'
IMG_FILE_PATH: '{{ .IMG_DEPLOY_DIR }}/{{ .IMG_FILE_NAME }}'
YOCTO_BUILD_DIR: '{{ .WORKDIR }}/build/{{ .MACHINE }}'
ENCRYPT: '{{ .ENCRYPT | default "false" }}'
MOBIAN: '{{ .MOBIAN | default "true" }}'
SELINUX: '{{ .SELINUX | default "false" }}'
includes:
android: android
distro: distro
utils: utils
yocto: yocto
tasks:
default:
silent: true
cmds:
- task --list-all --summary
- echo -e "\nEnvironment:\n"
- echo " WORKDIR = '{{ .WORKDIR }}'"
- echo " MACHINE = '{{ .MACHINE }}'"
- echo " DISTRO_TYPE = '{{ .DISTRO_TYPE }}'"
- echo " DISTRO_BASE = '{{ .DISTRO_BASE }}'"
- echo " DISTRO_SUITE = '{{ .DISTRO_SUITE }}'"
- echo " DISTRO_ARCH = '{{ .DISTRO_ARCH }}'"
- echo " IMG_RELEASE = '{{ .IMG_RELEASE }}'"
- echo " IMG_FILE_NAME = '{{ .IMG_FILE_NAME }}'"
- echo " IMG_DEPLOY_DIR = '{{ .IMG_DEPLOY_DIR }}'"
- echo " IMG_FILE_PATH = '{{ .IMG_FILE_PATH }}'"
- echo " YOCTO_BUILD_DIR = '{{ .YOCTO_BUILD_DIR }}'"
- echo " ENCRYPT = '{{ .ENCRYPT }}'"
- echo " MOBIAN = '{{ .MOBIAN }}'"
- echo " SELINUX = '{{ .SELINUX }}'"
- echo ""
fetch:
cmds:
- vcs import . < repos.yml
permissions:
desc: It will give permission to distrobox's image to able to build yocto
cmds:
- sudo cp .meta/bitbake-apparmor.conf /etc/apparmor.d/bitbake
- sudo apparmor_parser -r /etc/apparmor.d/bitbake
- git config --global http.postBuffer 157286400
- mkdir -p build src
box:
desc: Enter Distrobox's Ubuntu 22.04 image to build yocto&distro
cmds:
- rm -f build/debos/log.txt
- distrobox-list | grep -q 'gemstone-sdk' || docker build -f Dockerfile -t gemstone-sdk:latest .
- distrobox-assemble create --file distrobox.ini
- distrobox-enter --additional-flags "--tty" --name gemstone-sdk --no-workdir
destroy:
prompt: This is a dangerous command... Do you want to continue?
desc: Destroy everything including docker images, distrobox etc.
cmds:
- distrobox stop gemstone-sdk --yes || true
- distrobox rm gemstone-sdk --force || true
- sudo docker stop gemstone-sdk || true
- sudo docker rmi gemstone-sdk || true