Skip to content

Commit

Permalink
Added automatically generated release
Browse files Browse the repository at this point in the history
  • Loading branch information
shining-man committed Jan 17, 2024
1 parent cfd3028 commit 9d836a6
Show file tree
Hide file tree
Showing 2 changed files with 136 additions and 0 deletions.
110 changes: 110 additions & 0 deletions .github/workflows/main.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,110 @@
name: PlatformIO CI

on:
push:
paths-ignore:
- "**.md"

jobs:
job_bsc:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3

- name: Cache pip
uses: actions/cache@v3
with:
path: ~/.cache/pip
key: ${{ runner.os }}-pip-${{ hashFiles('**/requirements.txt') }}
restore-keys: ${{ runner.os }}-pip-

- name: Cache PlatformIO
uses: actions/cache@v3
with:
path: ~/.platformio
key: ${{ runner.os }}-platformio-2022-${{ hashFiles('**/lockfiles') }}

- name: Set up Python
uses: actions/setup-python@v4
with:
python-version: '3.x'

- name: Install PlatformIO
run: |
python -m pip install --upgrade pip
pip install --upgrade platformio
- name: Create folders
run: |
mkdir -p ./output_fw/bsc
mkdir -p ./output_fw/bsc_serial_log
- name: Prebuild Parameter
run: python ./scripts/prebuild_parameter.py

- name: Run githubCI.py
run: python ./scripts/githubCI.py

- name: Build firmware
run: platformio run

- name: Copy output
run: |
cp .pio/build/bsc/firmware.bin ./output_fw/bsc/
cp .pio/build/bsc/firmware.elf ./output_fw/bsc/
cp .pio/build/bsc/partitions.bin ./output_fw/bsc/
cp .pio/build/bsc/bootloader.bin ./output_fw/bsc/
cp ~/.platformio/packages/framework-arduinoespressif32/tools/partitions/boot_app0.bin ./output_fw/bsc/
cp .pio/build/bsc_hw_log/firmware.bin ./output_fw/bsc_serial_log/
cp .pio/build/bsc_hw_log/firmware.elf ./output_fw/bsc_serial_log/
cp .pio/build/bsc_hw_log/partitions.bin ./output_fw/bsc_serial_log/
cp .pio/build/bsc_hw_log/bootloader.bin ./output_fw/bsc_serial_log/
cp ~/.platformio/packages/framework-arduinoespressif32/tools/partitions/boot_app0.bin ./output_fw/bsc_serial_log/
- name: ZIP output for release
run: |
zip -j ./output_fw/bsc_release.zip ./output_fw/bsc/firmware.bin
zip -j ./output_fw/bsc_release.zip ./output_fw/bsc/partitions.bin
zip -j ./output_fw/bsc_release.zip ./output_fw/bsc/bootloader.bin
zip -j ./output_fw/bsc_release.zip ./output_fw/bsc/boot_app0.bin
- name: Get current date
id: date
run: echo "dt=$(date +'%Y-%m-%d-%H-%M')" >> $GITHUB_ENV

- name: Rename ZIP
run: mv ./output_fw/bsc_release.zip ./output_fw/bsc_release_${{ env.BSC_SW_VERSION }}_${{ env.dt }}.zip

- name: Publish Artifacts BSC firmware
uses: actions/upload-artifact@v4
with:
name: bsc_firmware
#path: .pio/build/*/firmware.bin
path: ./output_fw
if-no-files-found: error

- name: Create Release Files (only on MAIN branch)
id: create_release
uses: actions/create-release@v1
if: github.ref == 'refs/heads/main'
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} # This token is provided by Actions, you do not need to create your own token
with:
tag_name: ${{ env.BSC_SW_VERSION }}_${{ env.dt }}
release_name: ${{ env.BSC_SW_VERSION }}_${{ env.dt }}
body: |
Automatically generated release
draft: false
prerelease: false

- name: Upload Release Asset
id: upload-release-asset
uses: actions/upload-release-asset@v1
if: github.ref == 'refs/heads/main'
env:
GITHUB_TOKEN: ${{secrets.GITHUB_TOKEN}}
with:
upload_url: ${{ steps.create_release.outputs.upload_url }}
asset_path: ./output_fw/bsc_release_${{ env.BSC_SW_VERSION }}_${{ env.dt }}.zip
asset_name: bsc_firmware_${{ env.BSC_SW_VERSION }}_${{ env.dt }}.zip
asset_content_type: application/zip
26 changes: 26 additions & 0 deletions scripts/githubCI.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
# Copyright (c) 2024 Tobias Himmler
#
# This software is released under the MIT License.
# https://opensource.org/licenses/MIT

import os

env_file = os.getenv('GITHUB_ENV')


datei = open('./include/defines.h','r')
for zeile in datei:
defFound = zeile.find("#define ")
if defFound >= 0:
defs = zeile.strip().split(' ',2)
if len(defs) == 3:
defName = defs[1].strip()
defValue = defs[2].strip().replace('"', '')

if(defName == "BSC_SW_VERSION"):
defValue=defValue.lower()
print(defName+"="+defValue)
with open(env_file, "a") as myfile:
myfile.write(defName+"="+defValue)

datei.close()

0 comments on commit 9d836a6

Please sign in to comment.