48 lines
1.2 KiB
YAML
48 lines
1.2 KiB
YAML
name: Compile ESPHome
|
|
|
|
on:
|
|
push:
|
|
branches: [ main ]
|
|
pull_request:
|
|
branches: [ main ]
|
|
workflow_dispatch:
|
|
|
|
jobs:
|
|
compile:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
|
|
- name: Install Nix
|
|
uses: cachix/install-nix-action@v30
|
|
with:
|
|
nix_path: nixpkgs=channel:nixos-unstable
|
|
extra_nix_config: |
|
|
sandbox = false
|
|
|
|
- name: Enable unprivileged user namespaces
|
|
run: |
|
|
sudo sysctl -w kernel.unprivileged_userns_clone=1 || true
|
|
sudo sysctl -w dev.user_namespaces.enable=1 || true
|
|
|
|
- name: Install dependencies
|
|
run: |
|
|
sudo apt-get update
|
|
sudo apt-get install -y direnv zsh bubblewrap
|
|
|
|
- name: Prepare secrets
|
|
run: |
|
|
if [ -f templates/secrets.yaml.sample ]; then
|
|
cp templates/secrets.yaml.sample secrets.yaml
|
|
elif [ -f secrets.yaml.sample ]; then
|
|
cp secrets.yaml.sample secrets.yaml
|
|
fi
|
|
|
|
- name: Allow direnv
|
|
run: direnv allow .
|
|
|
|
- name: Compile
|
|
# Use sudo -E to run as root while preserving environment,
|
|
# which can bypass bwrap permission issues.
|
|
run: sudo -E direnv exec . ./reflash.sh compile ''
|