ESPHome's packaging of the ESP8266 Arduino core for its native ESP8266 toolchain, so the build depends on nothing from the PlatformIO registry (esphome/backlog#174).
This repository is a fork of the core. The upstream branches and tags are
left as they are. This branch, esphome, holds only the packaging:
package.shcopies a checkout with its submodules the way the core's own release script does, rewritesplatform.txtandcores/esp8266/core_version.has that script would, and writes a.tar.gzwith the contents at the archive root, the layout of the PlatformIO package..github/workflows/release.ymlpackages a chosen core ref, checks the result against the PlatformIO registry package of the same version, and on a manual run publishes it as a release.
Releases are <core version>-esphome.<n>, for example 3.1.2-esphome.3;
each release takes the next n. Two branches are involved:
esphome(this branch, the default) holds the packaging and the workflow.esphome-3.1.2is upstream's3.1.2tag plus the fixes ESPHome carries. Releases are packaged from it.
-
Fixes are pull requests against
esphome-3.1.2. Its CI runs the core's host tests and builds; it must pass. -
After merging, run the
Packageworkflow fromesphomewithrefset toesphome-3.1.2andtagset to the next release:gh workflow run release.yml --repo esphome-libs/arduino-esp8266 --ref esphome \ -f ref=esphome-3.1.2 -f tag=3.1.2-esphome.4
It checks that the tag matches the version in the core's
platform.txt, packages the branch, tags the packaged commit and publishesarduino-esp8266-<tag>.tar.gzandsha256sums.txtas a release. Running it again with a tag that already exists keeps the tag where it is but replaces the release's files, so always use a new tag. -
Check the release: the tag must point at the merged commit (
gh api repos/esphome-libs/arduino-esp8266/git/ref/tags/<tag>), and the archive must contain the change. -
Point ESPHome at it: in the ESPHome repository (
esphome/esphome), set theFRAMEWORK_RELEASESentry inesphome/arduino8266/framework.pyto the tag, the archive's sha256 (fromsha256sums.txt) and its size in bytes. ESPHome checks both when it downloads, so build an ESP8266 config before opening the pull request.
Pull requests and pushes to esphome package upstream 3.1.2 as a check
without publishing; only an upstream tag packaged as is gets compared with the
PlatformIO registry package, since a branch carrying fixes differs on purpose.
Branch from the upstream tag, for example esphome-3.1.3 from 3.1.3, move the
fixes over, and package that branch the same way with 3.1.3-esphome.1.
Upstream no longer takes ESP8266 fixes, so they are carried here.
package.sh, the workflow and the files under ci/ are licensed under the
Apache License 2.0, see LICENSE. The core itself is licensed under the
LGPL 2.1, see its own LICENSE in the packaged archive.