From 0ab55d90153e99b63be4ec811684196cea6ef62d Mon Sep 17 00:00:00 2001 From: Artem Sheremet Date: Sun, 10 May 2026 16:10:53 +0000 Subject: [PATCH] github workflow to compile esphome files --- .github/workflows/compile.yaml | 47 ++++++++++++++++++++++++++++++++++ flake.nix | 1 + 2 files changed, 48 insertions(+) create mode 100644 .github/workflows/compile.yaml diff --git a/.github/workflows/compile.yaml b/.github/workflows/compile.yaml new file mode 100644 index 0000000..4ae1abe --- /dev/null +++ b/.github/workflows/compile.yaml @@ -0,0 +1,47 @@ +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 '' diff --git a/flake.nix b/flake.nix index 49e9923..774f664 100644 --- a/flake.nix +++ b/flake.nix @@ -18,6 +18,7 @@ esphome esptool cc2538-bsl + zsh ]; shellHook = ''