diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 4fda1c4..d9015b0 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -1,4 +1,4 @@ -name: Build ESPHome firmware +name: Build on: push: @@ -6,98 +6,24 @@ on: - 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/checkout@v4.1.7 - - name: 🚀 Run yamllint - run: yamllint --strict . - build-firmware: name: Build Firmware - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v4.1.7 - - name: Build Firmware - uses: esphome/build-action@v3.2.0 - 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/upload-artifact@v4.3.4 - with: - path: output - name: voice-kit - - - name: Comment on PR - if: github.event_name == 'pull_request' - uses: actions/github-script@v7.0.1 - 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/checkout@v4.1.7 - - uses: actions/download-artifact@v4.1.8 - with: - name: voice-kit - path: output - - run: cp -R static/* output/ - - uses: actions/upload-pages-artifact@v3.0.1 - 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/configure-pages@v5.0.0 - - name: Deploy to GitHub Pages - id: deployment - uses: actions/deploy-pages@v4.0.5 + 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 diff --git a/.github/workflows/yaml-lint.yml b/.github/workflows/yaml-lint.yml new file mode 100644 index 0000000..161495e --- /dev/null +++ b/.github/workflows/yaml-lint.yml @@ -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/checkout@v4.1.7 + - name: 🚀 Run yamllint + run: yamllint --strict . diff --git a/voice-kit.yaml b/voice-kit.yaml index b9b095f..a10ed0d 100644 --- a/voice-kit.yaml +++ b/voice-kit.yaml @@ -23,7 +23,7 @@ esphome: board_build.flash_mode: dio project: name: esphome.voice-kit - version: "1.0" + version: dev on_boot: priority: 600 then: