Skip to content

Properly set boot partition after OTA #1087

Properly set boot partition after OTA

Properly set boot partition after OTA #1087

Workflow file for this run

name: ESP32
on:
pull_request:
push:
branches:
- master
tags:
- '*'
jobs:
firmware_build:
runs-on: ubuntu-latest
outputs:
build_version: ${{ steps.version_formatter.outputs.build_version }}
strategy:
matrix:
project:
- project_name: "unittest"
product_name: "tests"
company_uuid: "tendry-lab-"
config: ".env/unittest_configuration"
- project_name: "ds18b20-verifier"
product_name: "ds-onewire"
company_uuid: "tendry-lab-"
config: ".env/ds18b20_verifier_configuration"
- project_name: "ds-rom-code-scanner"
product_name: "ds-onewire"
company_uuid: "tendry-lab-"
config: ".env/ds_rom_code_scanner_configuration"
- project_name: "sht4x-verifier"
product_name: "sht4x"
company_uuid: "tendry-lab-"
config: ".env/sht4x_verifier_configuration"
target: ["esp32", "esp32s2", "esp32s3"]
env:
SOURCE_PATH: project
IDF_PATH: esp-idf
IDF_VERSION: v5.5.1
CONFIGURATION_PATH_CCACHE: .env/ccache
steps:
- name: checkout repository
uses: actions/checkout@v4
with:
path: ${{ env.SOURCE_PATH }}
submodules: recursive
- name: check library license headers
env:
CI_COMPONENTS_PATH: ${{ env.SOURCE_PATH }}/ci-components
PROJECT_PATH: ${{ env.SOURCE_PATH }}/components
shell: bash
run: |
${{ env.SOURCE_PATH }}/ci-components/scripts/fmt/check_license.sh
- name: check library formatting
env:
PROJECT_PATH: ${{ env.SOURCE_PATH }}/components
shell: bash
run: |
${{ env.SOURCE_PATH }}/ci-components/scripts/fmt/cpp/check_format.sh
- name: check project license headers
env:
CI_COMPONENTS_PATH: ${{ env.SOURCE_PATH }}/ci-components
PROJECT_PATH: ${{ env.SOURCE_PATH }}/projects/${{ matrix.project.project_name }}
shell: bash
run: |
${{ env.SOURCE_PATH }}/ci-components/scripts/fmt/check_license.sh
- name: check project formatting
env:
PROJECT_PATH: ${{ env.SOURCE_PATH }}/projects/${{ matrix.project.project_name }}
shell: bash
run: |
${{ env.SOURCE_PATH }}/ci-components/scripts/fmt/cpp/check_format.sh
- name: setup ESP32 environment
uses: ./project/ci-components/.github/actions/esp32/env
with:
IDF_PATH: ${{ env.IDF_PATH }}
IDF_VERSION: ${{ env.IDF_VERSION }}
- name: setup system environment
uses: ./project/ci-components/.github/actions/system/env
- name: setup ccache
uses: ./project/ci-components/.github/actions/system/ccache
with:
CONFIGURATION_PATH_CCACHE: ${{ env.CONFIGURATION_PATH_CCACHE }}
- name: format firmware build version
id: version_formatter
uses: ./project/ci-components/.github/actions/core/version
- name: prepare firmware configuration
uses: ./project/ci-components/.github/actions/esp32/config
with:
PROJECT_NAME: ${{ matrix.project.project_name }}-${{ matrix.target }}
PRODUCT_NAME: ${{ matrix.project.product_name }}
COMPANY_UUID: ${{ matrix.project.company_uuid }}
BUILD_VERSION: ${{ steps.version_formatter.outputs.build_version }}
BUILD_CONFIG_PATH: ${{ matrix.project.config }}-${{ matrix.target }}
PROJECT_CONFIG_PATH: ${{ env.SOURCE_PATH }}/projects/config.yml
- name: build firmware
uses: ./project/ci-components/.github/actions/esp32/build
with:
IDF_PATH: ${{ env.IDF_PATH }}
PROJECT_PATH: ${{ env.SOURCE_PATH }}/projects/${{ matrix.project.project_name }}
CONFIGURATION_PATH_CCACHE: ${{ env.CONFIGURATION_PATH_CCACHE }}
CONFIGURATION_PATH_PROJECT: ${{ matrix.project.config }}-${{ matrix.target }}
- name: upload firmware
uses: ./project/ci-components/.github/actions/esp32/upload
with:
PROJECT_PATH: ${{ env.SOURCE_PATH }}/projects/${{ matrix.project.project_name }}
ARTIFACT_NAME: ${{ matrix.project.project_name }}-${{ matrix.target }}-${{ steps.version_formatter.outputs.build_version }}
firmware_release:
runs-on: ubuntu-latest
needs: firmware_build
if: github.ref_type == 'tag'
permissions:
contents: write
env:
SOURCE_PATH: project
PROJECT_NAME: control-components
steps:
- name: Checkout repository
uses: actions/checkout@v4
with:
path: ${{ env.SOURCE_PATH }}
submodules: recursive
- name: Create release
uses: ./project/ci-components/.github/actions/core/release-create
with:
DOWNLOAD_ARTIFACT_PATH: artifacts
RELEASE_ARCHIVE_NAME: "${{ env.PROJECT_NAME }}-${{ needs.firmware_build.outputs.build_version }}.zip"