-
Notifications
You must be signed in to change notification settings - Fork 67
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Use new shared workflow to publish firmware to Cloudflare R2 (#33)
- Loading branch information
1 parent
6ef7b93
commit 9633e07
Showing
3 changed files
with
37 additions
and
89 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,103 +1,29 @@ | ||
name: Build ESPHome firmware | ||
name: Build | ||
|
||
on: | ||
push: | ||
branches: | ||
- dev | ||
pull_request: | ||
workflow_dispatch: | ||
release: | ||
types: [published] | ||
|
||
concurrency: | ||
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }} | ||
cancel-in-progress: true | ||
|
||
jobs: | ||
yamllint: | ||
name: 🧹 yamllint | ||
runs-on: ubuntu-latest | ||
steps: | ||
- name: ⤵️ Check out configuration from GitHub | ||
uses: actions/[email protected] | ||
- name: 🚀 Run yamllint | ||
run: yamllint --strict . | ||
|
||
build-firmware: | ||
name: Build Firmware | ||
runs-on: ubuntu-latest | ||
steps: | ||
- uses: actions/[email protected] | ||
- name: Build Firmware | ||
uses: esphome/[email protected] | ||
id: esphome-build | ||
with: | ||
yaml_file: voice-kit.yaml | ||
version: latest | ||
cache: true | ||
- name: Move generated files to output | ||
run: | | ||
mkdir -p output | ||
mv ${{ steps.esphome-build.outputs.name }} output/ | ||
jq --arg version "${{ steps.esphome-build.outputs.project-version }}" \ | ||
'{"name": "ESPHome Voice Kit", "version": $version, "home_assistant_domain": "esphome", "new_install_prompt_erase": false, "builds":[.]}' \ | ||
output/${{ steps.esphome-build.outputs.name }}/manifest.json > output/manifest.json | ||
- name: Upload firmware | ||
id: upload-artifact | ||
uses: actions/[email protected] | ||
with: | ||
path: output | ||
name: voice-kit | ||
|
||
- name: Comment on PR | ||
if: github.event_name == 'pull_request' | ||
uses: actions/[email protected] | ||
with: | ||
script: | | ||
await github.rest.issues.createComment({ | ||
issue_number: context.issue.number, | ||
owner: context.repo.owner, | ||
repo: context.repo.repo, | ||
body: `Firmware built successfully! :tada: | ||
[Download][download] and extract the firmware to install with https://web.esphome.io | ||
Make sure to choose \`esphome-voice-kit-esp32s3/esphome-voice-kit-esp32s3.factory.bin\`. | ||
[download]: ${{ steps.upload-artifact.outputs.artifact-url }}` | ||
}) | ||
build-pages: | ||
name: Build pages | ||
runs-on: ubuntu-latest | ||
needs: | ||
- build-firmware | ||
steps: | ||
- uses: actions/[email protected] | ||
- uses: actions/[email protected] | ||
with: | ||
name: voice-kit | ||
path: output | ||
- run: cp -R static/* output/ | ||
- uses: actions/[email protected] | ||
with: | ||
path: output | ||
retention-days: 1 | ||
|
||
deploy: | ||
# TODO: Change this to `release` later. | ||
if: github.event_name == 'workflow_dispatch' || (github.event_name == 'push' && github.ref == 'refs/heads/dev') | ||
name: Deploy to GitHub Pages | ||
runs-on: ubuntu-latest | ||
needs: build-pages | ||
permissions: | ||
pages: write | ||
id-token: write | ||
environment: | ||
name: github-pages | ||
url: ${{ steps.deployment.outputs.page_url }} | ||
steps: | ||
- name: Setup Pages | ||
uses: actions/[email protected] | ||
- name: Deploy to GitHub Pages | ||
id: deployment | ||
uses: actions/[email protected] | ||
uses: esphome/workflows/.github/workflows/build.yml@main | ||
with: | ||
files: | | ||
voice-kit.yaml | ||
name: voice-kit | ||
esphome-version: 2024.7.3 | ||
release-summary: ${{ github.event_name == 'release' && github.event.release.body || '' }} | ||
release-url: ${{ github.event_name == 'release' && github.event.release.html_url || '' }} | ||
upload: ${{ github.event_name == 'release' || (github.event_name == 'workflow_dispatch' && github.ref == 'refs/heads/dev') }} | ||
release-version: ${{ github.event_name == 'release' && github.event.release.tag_name || '' }} | ||
secrets: inherit |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,22 @@ | ||
name: YAML lint | ||
|
||
on: | ||
push: | ||
branches: [main] | ||
paths: | ||
- "**.yaml" | ||
- "**.yml" | ||
pull_request: | ||
paths: | ||
- "**.yaml" | ||
- "**.yml" | ||
|
||
jobs: | ||
yamllint: | ||
name: 🧹 yamllint | ||
runs-on: ubuntu-latest | ||
steps: | ||
- name: ⤵️ Check out configuration from GitHub | ||
uses: actions/[email protected] | ||
- name: 🚀 Run yamllint | ||
run: yamllint --strict . |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters