Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
26 changes: 9 additions & 17 deletions .github/workflows/firmware_build_only.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,11 @@ on:
workflow_call:
outputs:
artifact_name:
description: "Name of the uploaded artifact"
description: "Name of the uploaded nightly artifact"
value: ${{ jobs.build.outputs.artifact_name }}
release_artifact_name:
description: "Name of the uploaded release artifact"
value: ${{ jobs.build.outputs.release_artifact_name }}
action_date:
description: "Build date timestamp"
value: ${{ jobs.build.outputs.action_date }}
Expand All @@ -19,6 +22,7 @@ jobs:
runs-on: ubuntu-latest
outputs:
artifact_name: nightly_firmware
release_artifact_name: release_firmware
action_date: ${{ steps.set_env.outputs.action_date }}
release_version: ${{ steps.set_env.outputs.release_version }}
steps:
Expand Down Expand Up @@ -70,20 +74,8 @@ jobs:
knot_esp32_nightly_${{ env.ACTION_DATE }}.uf2
knot_esp32_nightly.uf2

- name: Zipping artifacts for Github Release
uses: vimtor/action-zip@v1
if: ${{ env.RELEASE_VERSION != '' }}
with:
files: knot_esp32_release_${{ env.ACTION_DATE }}.uf2
dest: knot_release.zip

- name: Release
uses: softprops/action-gh-release@v1
if: ${{ env.RELEASE_VERSION != '' }}
- name: Upload release artifacts
uses: actions/upload-artifact@v4
with:
tag_name: ${{ env.RELEASE_VERSION }}
name: Knot ${{ env.RELEASE_VERSION }} (${{ env.ACTION_DATE }})
files: knot_release.zip
draft: true
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
name: release_firmware
path: knot_esp32_release_${{ env.ACTION_DATE }}.uf2
49 changes: 49 additions & 0 deletions .github/workflows/firmware_release_production.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
name: "Firmware Production Release"

on:
workflow_call:
inputs:
release_version:
description: "Git tag version for the release"
required: true
type: string
action_date:
description: "Build date timestamp"
required: true
type: string
workflow_dispatch:
inputs:
release_version:
description: "Git tag version for the release"
required: true
type: string
action_date:
description: "Build date timestamp"
required: true
type: string

jobs:
create-production-release:
runs-on: ubuntu-latest
steps:
- name: Download release artifacts
uses: actions/download-artifact@v4
with:
name: release_firmware
path: release/

- name: Zip artifacts for Github Release
uses: vimtor/action-zip@v1
with:
files: release/knot_esp32_release_${{ inputs.action_date }}.uf2
dest: knot_release.zip

- name: Create Production Release
uses: softprops/action-gh-release@v1
with:
tag_name: ${{ inputs.release_version }}
name: Knot ${{ inputs.release_version }} (${{ inputs.action_date }})
files: knot_release.zip
draft: true
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
10 changes: 10 additions & 0 deletions .github/workflows/firmware_workflow.yml
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,16 @@ jobs:
name: Build Firmware
uses: ./.github/workflows/firmware_build_only.yml

publish-production:
name: Publish Production Release
if: needs.build.outputs.release_version != ''
needs: build
uses: ./.github/workflows/firmware_release_production.yml
with:
release_version: ${{ needs.build.outputs.release_version }}
action_date: ${{ needs.build.outputs.action_date }}
secrets: inherit

publish-nightly:
name: Publish Nightly Release
if: github.ref == 'refs/heads/main'
Expand Down