Go to file
dependabot[bot] e8aea7b2b7
Bump docker/build-push-action from 6.9.0 to 6.10.0 (#61)
2024-12-01 15:54:33 +01:00
.github Bump actions/upload-artifact from 4.4.0 to 4.4.3 in the artifacts group (#55) 2024-11-08 19:20:26 +01:00
tests Actually escape the release summary better (#51) 2024-09-13 21:17:06 +12:00
.gitignore Add input to output full esp-web-tools manifest (#43) 2024-08-02 11:01:42 +12:00
Dockerfile Add build caching (#24) 2024-02-29 13:25:06 +13:00
LICENSE Create LICENSE 2021-11-18 22:52:33 +13:00
README.md Deprecate cache input (#60) 2024-11-22 08:47:11 +01:00
action.yml Bump docker/build-push-action from 6.9.0 to 6.10.0 (#61) 2024-12-01 15:54:33 +01:00
entrypoint.py Also copy elf file to output directory (#59) 2024-11-22 15:48:43 +13:00

README.md

ESPHome Build action

GitHub release (latest SemVer)

This action takes a yaml file for an ESPHome device and will compile and output the build firmware file and a partial manifest.json file that can be used to flash a device via ESP Web Tools.

Example usage

uses: esphome/build-action@v4.0.2
with:
  yaml-file: my_configuration.yaml

This action is used by the ESPHome publish workflow that is used to compile firmware and publish simple GitHub pages sites for projects.

Inputs

Name Default Description
yaml-file None The YAML file to be compiled.
version latest The ESPHome version to build using.
platform linux/amd64 The docker platform to use during build. (linux/amd64, linux/arm64, linux/arm/v7)
release-summary None A small summary of the release that will be added to the manifest file.
release-url None A URL to the release page that will be added to the manifest file.
complete-manifest false Whether to output a complete manifest file. Defaults to output a partial manifest only.

Outputs

Name Description
name The name of the device in yaml with the platform (eg. ESP32 or ESP8266) appended.
version The ESPHome version used during build.
original-name The original name of the device in yaml.
project-name The name of the project in yaml. esphome.project.name
project-version The version of the project in yaml. esphome.project.version

Output files

This action will output a folder named with the output name and will contain three files:

  • manifest.json
    • If complete-manifest is set to true then this file is directly usable by esp-web-tools.
    • Otherwise, this goes into the builds section of an esp-web-tools manifest.json.
  • {name}.factory.bin - The firmware to be flashed with esp-web-tools.
  • {name}.ota.bin - The firmware that can be flashed over-the-air to the device using the Managed Updated via HTTP Request.