-
-
Notifications
You must be signed in to change notification settings - Fork 12
/
action.yml
178 lines (172 loc) · 7.31 KB
/
action.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
172
173
174
175
176
177
178
name: pi-gen-action
description: Build a custom Raspberry Pi image using pi-gen
author: Simon Domke
inputs:
# pi-gen variables
apt-proxy:
description: |
If you require the use of an apt proxy, set it here. This proxy setting will not be included in the image,
making it safe to use an apt-cacher or similar package for development.
required: false
default: ''
image-name:
description: Final image name.
required: true
pi-gen-release:
description: The release name to use in `/etc/issue.txt`. The default should only be used for official Raspberry Pi builds.
required: false
default: Raspberry Pi reference
setfcap:
description: |
Setting to `1` will prevent pi-gen from dropping the "capabilities" feature. Generating the root filesystem with capabilities enabled and running
it from a filesystem that does not support capabilities (like NFS) can cause issues. Only enable this if you understand what it is.
required: false
default: ''
stage-list:
description: |
List of stage name to execute in given order. Relative and absolute paths to custom stage directories are allowed here.
Note that by default pi-gen exports images in stage2 (lite), stage4 and stage5. You probably want to hook in custom stages
before one of the exported stages. Otherwise, the action will make sure any custom stage will include an image export directive.
required: false
default: 'stage0 stage1 stage2'
release:
description: The release version to build images against. Valid values are jessie, stretch, buster, bullseye, bookworm, and testing.
required: false
default: bookworm
compression:
description: Compression to apply on final image (either "none", "zip", "xz" or "gz").
required: false
default: zip
compression-level:
description: Compression level to be used. From 0 to 9 (refer to the tool man page for more information on this. Usually 0 is no compression but very fast, up to 9 with the best compression but very slow).
required: false
default: 6
locale:
description: Default locale of the system image.
required: false
default: en_GB.UTF-8
hostname:
description: Host name of the image.
required: false
default: raspberrypi
keyboard-keymap:
description: Default keyboard keymap.
required: false
default: gb
keyboard-layout:
description: Default keyboard layout.
required: false
default: English (UK)
timezone:
description: System timezone.
required: false
default: Europe/London
username:
description: Name of the initial user account.
required: false
default: pi
password:
description: Password of the intial user account, locked if empty.
required: false
disable-first-boot-user-rename:
description: |
Disable the renaming of the first user during the first boot. This make it so 'username' stays activated.
'username' must be set for this to work. Please be aware of the implied security risk of defining a default
username and password for your devices.
required: false
default: 0
wpa-essid:
description: SSID of a default wifi network to connect to.
required: false
wpa-password:
description: Password of default wifi network to connect to.
required: false
wpa-country:
description: Wifi country code of default network to connect to.
required: false
enable-ssh:
description: Enable SSH access to Pi.
required: false
default: 0
pubkey-ssh-first-user:
description: |
Setting this to a value will make that value the contents of the FIRST_USER_NAME's ~/.ssh/authorized_keys.
Obviously the value should therefore be a valid authorized_keys file. Note that this does not automatically
enable SSH.
required: false
pubkey-only-ssh:
description: |
Setting to `1` will disable password authentication for SSH and enable public key authentication. Note that if
SSH is not enabled this will take effect when SSH becomes enabled.
required: false
default: 0
docker-opts:
description: Additional options to include in PIGEN_DOCKER_OPTS
required: false
default: ""
# action variables
pi-gen-repository:
description: GitHub repository to fetch pi-gen from, must be a fork from RPi-Distro/pi-gen.
required: false
default: RPi-Distro/pi-gen
export-last-stage-only:
description: |
If this feature is enabled, the action will configure pi-gen to not export any stage as image but the last one
defined in property 'stage-list'. This is helpful when building a single image flavor (in contrast to building
a lite/server and full-blown desktop image), since it speeds up the build process significantly.
required: false
default: true
pi-gen-version:
description: Release version of pi-gen to use. This can both be a branch or tag name known in the pi-gen repository.
required: false
# Currently, theres a bug in pi-gen if building for 64bit targets: https://github.com/RPi-Distro/pi-gen/issues/271
# We assume this is mostly the case, so this is set to the fix in the branch by default
default: arm64
enable-noobs:
description: Set whether a NOOBS image should be built as well. If enabled, the output directory containing the NOOBS files will be saved as output variable 'image-noobs-path'.
required: false
default: false
extra-host-dependencies:
description: |
Comma or whitespace separated list of additional packages to install on host before running pi-gen.
Use this list to add any packages your custom stages may require. Note that this is not affecting the final image. In order to add additional packages, you need to add a respective 'XX-packages' file in your custom stage.
required: false
default: ''
extra-host-modules:
description: |
Comma or whitespace separated list of additional modules to load on host before running pi-gen.
If your custom stage requires additional software or kernel modules to be loaded, add them here. Note that this is not meant to configure modules to be loaded in the target image.
required: false
default: ''
increase-runner-disk-size:
description: |
Enabling this option will remove plenty of components from the GitHub Actions runner that are not mandatory pre-requisites for a (vanilla) pi-gen build.
This shall increase the available disk space so that also large images can be compiled on a free GHA runner (benchmark is the full image including a
desktop environment).
If any packages are missing during the build consider adding them to the `extra-host-dependencies` list.
required: false
default: false
pi-gen-dir:
description: Path where selected pi-gen ref will be checked out to. If the path does not yet exist, it will be created (including its parents).
required: false
default: pi-gen
verbose-output:
description: Print all output from pi-gen.
required: false
default: false
github-token:
description: Token to use for checking out pi-gen repo.
required: false
default: ${{ github.token }}
outputs:
image-path:
description: Path to the final custom image
image-noobs-path:
description: Path to final noobs image, if enabled
runs:
using: node20
main: dist/index.js
post: dist/index.js
branding:
icon: box
color: red