A template repo for PI-CI: fork me for automated RPi builds!
This repository uses Github Actions to prepare Raspberry Pi images, enabling configurations to be defined as code through Ansible. Every commit represents a snapshot of a RPi configuration, which can be reproduced by flashing the image on an SD card and running the included Ansible playbook (provided in this repo).
- Create images that work from first boot
- No more need to create back-ups of SD cards
- Keep track of difficult configurations
- Returning to an older version
- Easily share configurations
Flash the image provided in this repo as a demo! After flashing, log in as root (no password need) and run ./run.sh local
. The script will setup the environment defined in the ./inv/local.yml
inventory file. After the configuration is done, you can log in using test-user
and test-password
.
Forking this repo on GitHub will automatically enable and run the actions out of the box for your own, custom configuration.
It is also possible to run the configuration pipeline locally, but it requires some software to be installed. To do so;
- Clone this repo.
- Have this repo as current working directory.
- Install
docker
. - Install
ansible
. - Install
python3
. - Install
pip3
. - Install
docker-py
pip module. - Start
docker
service.
To run the project locally, run:
./run.sh ci
NOTE: Linux and Mac are supported, Windows through WSL.
Built and tested locally on Ubuntu 22.04
(WSL), and should work with the following minimum versions;
Software | Version |
---|---|
Ansible | 2.5.1 |
docker-py | 4.4.4 |
Docker | 19.03.6 |
PI-TEMPLATE is licensed under GPLv3.