Skip to content

Commit

Permalink
change(github): Add release process
Browse files Browse the repository at this point in the history
  • Loading branch information
dobairoland committed Jun 24, 2024
1 parent 26899fb commit 6ee4739
Show file tree
Hide file tree
Showing 7 changed files with 181 additions and 0 deletions.
3 changes: 3 additions & 0 deletions .codespellrc
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
[codespell]
ignore-words-list = bloc,ser,dout,exten
write-changes = false
21 changes: 21 additions & 0 deletions .cz.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
[tool.commitizen]
version = "4.7.0"
update_changelog_on_bump = true
tag_format = "v$version"
changelog_start_rev = "v0.0"
changelog_merge_prerelease = true
annotated_tag = true
bump_message = "change: Update version to $new_version"
change_type_order = [
"BREAKING CHANGE",
"New Features",
"Bug Fixes",
"Code Refactoring",
"Performance Improvements"
]

[tool.commitizen.change_type_map]
feat = "New Features"
fix = "Bug Fixes"
refactor = "Code Refactoring"
perf = "Performance Improvements"
41 changes: 41 additions & 0 deletions .github/workflows/create_release.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
name: Build stubs

on: [push, pull_request]

jobs:
create_release:
name: Create GitHub release
if: startsWith(github.ref, 'refs/tags/') && !(contains(github.ref_name, 'dev'))
runs-on: ubuntu-latest
permissions:
contents: write
steps:
- name: Get version
id: get_version
run: echo "VERSION=${GITHUB_REF#refs/tags/v}" >> $GITHUB_OUTPUT
shell: bash
- name: Checkout
uses: actions/checkout@master
with:
fetch-depth: 0
- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install --user commitizen
- name: Generate changelog
run: |
cz changelog ${{ steps.get_version.outputs.VERSION }} --template ci/gh_changelog_template.md.j2 --file-name changelog_body.md
cat changelog_body.md
- name: Download built binaries
uses: actions/download-artifact@master
- name: Create release
id: create_release
uses: softprops/action-gh-release@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
body_path: changelog_body.md
name: Version ${{ steps.get_version.outputs.VERSION }}
draft: true
prerelease: false
files: *.json
32 changes: 32 additions & 0 deletions .github/workflows/test_build.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
name: Test build

on: [push, pull_request]

jobs:
test_esptool:
runs-on: ubuntu-latest

steps:
- name: Checkout ref commit
uses: actions/checkout@master

- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install esptool
- name: Build stub
run: |
export TOOLCHAIN_DIR=$HOME/toolchain
export ESP8266_BINDIR=$TOOLCHAIN_DIR/xtensa-lx106-elf/bin
export ESP32_BINDIR=$TOOLCHAIN_DIR/xtensa-esp32-elf/bin
export ESP32S2_BINDIR=$TOOLCHAIN_DIR/xtensa-esp32s2-elf/bin
export ESP32S3_BINDIR=$TOOLCHAIN_DIR/xtensa-esp32s3-elf/bin
export ESP32C3_BINDIR=$TOOLCHAIN_DIR/riscv32-esp-elf/bin
export PATH=$PATH:$ESP8266_BINDIR:$ESP32_BINDIR:$ESP32S2_BINDIR:$ESP32S3_BINDIR:$ESP32C3_BINDIR
./ci/setup_ci_build_env.sh
make -C flasher_stub V=1
cd flasher_stub && python ./compare_stubs.py
12 changes: 12 additions & 0 deletions .pre-commit-config.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
repos:
- repo: https://github.com/codespell-project/codespell
rev: v2.2.5
hooks:
- id: codespell
- repo: https://github.com/espressif/conventional-precommit-linter
rev: v1.4.0
hooks:
- id: conventional-precommit-linter
stages: [commit-msg]
default_stages: [commit]
default_install_hook_types: [pre-commit, commit-msg]
28 changes: 28 additions & 0 deletions ci/gh_changelog_template.md.j2
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
{# This changelog template is used for automatically generated GH release notes. #}
{# It is passed to commitizen's --template option in a GH Actions workflow run. #}

{% for entry in tree %}

{% for change_key, changes in entry.changes.items() %}

{% if change_key %}
### {{ change_key }}
{% endif %}

{% for change in changes %}
{% if change.scope %}
- **{{ change.scope }}**: {{ change.message }}
{% elif change.message %}
- {{ change.message }}
{% endif %}
{% endfor %}
{% endfor %}
{% endfor %}

Thanks to <FILL OUT CONTRIBUTORS>, and others for contributing to this release!

# Results of checking the release against common anti-virus SW

<Upload the release binaries to VirusTotal and ADD a link to the report here>

The failures are probably false positives. You can mark esptool as safe in your anti-virus SW, or [install esptool from source](https://docs.espressif.com/projects/esptool/en/latest/installation.html).
44 changes: 44 additions & 0 deletions ci/setup_ci_build_env.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
#!/bin/bash

set -exuo pipefail

ESP8266_TOOLCHAIN_URL="https://dl.espressif.com/dl/xtensa-lx106-elf-linux64-1.22.0-92-g8facf4c-5.2.0.tar.gz"
ESP32_TOOLCHAIN_URL="https://github.com/espressif/crosstool-NG/releases/download/esp-2022r1/xtensa-esp32-elf-gcc11_2_0-esp-2022r1-linux-amd64.tar.xz"
ESP32S2_TOOLCHAIN_URL="https://github.com/espressif/crosstool-NG/releases/download/esp-2022r1/xtensa-esp32s2-elf-gcc11_2_0-esp-2022r1-linux-amd64.tar.xz"
ESP32S3_TOOLCHAIN_URL="https://github.com/espressif/crosstool-NG/releases/download/esp-2022r1/xtensa-esp32s3-elf-gcc11_2_0-esp-2022r1-linux-amd64.tar.xz"
ESP32C3_TOOLCHAIN_URL="https://github.com/espressif/crosstool-NG/releases/download/esp-2022r1/riscv32-esp-elf-gcc11_2_0-esp-2022r1-linux-amd64.tar.xz"

# Setup shell script to download & configure ESP8266 & ESP32 toolchains
# for building the flasher stub program

mkdir -p ${TOOLCHAIN_DIR}
cd ${TOOLCHAIN_DIR}

if ! [ -d ${ESP8266_BINDIR} ]; then
wget --continue --no-verbose "${ESP8266_TOOLCHAIN_URL}"
tar zxf $(basename ${ESP8266_TOOLCHAIN_URL})
fi

if ! [ -d ${ESP32_BINDIR} ]; then
# gitlab CI image may already have this file
wget --continue --no-verbose "${ESP32_TOOLCHAIN_URL}"
tar Jxf $(basename ${ESP32_TOOLCHAIN_URL})
fi

if ! [ -d ${ESP32S2_BINDIR} ]; then
# gitlab CI image may already have this file
wget --continue --no-verbose "${ESP32S2_TOOLCHAIN_URL}"
tar Jxf $(basename ${ESP32S2_TOOLCHAIN_URL})
fi

if ! [ -d ${ESP32S3_BINDIR} ]; then
# gitlab CI image may already have this file
wget --continue --no-verbose "${ESP32S3_TOOLCHAIN_URL}"
tar Jxf $(basename ${ESP32S3_TOOLCHAIN_URL})
fi

if ! [ -d ${ESP32C3_BINDIR} ]; then
# gitlab CI image may already have this file
wget --continue --no-verbose "${ESP32C3_TOOLCHAIN_URL}"
tar Jxf $(basename ${ESP32C3_TOOLCHAIN_URL})
fi

0 comments on commit 6ee4739

Please sign in to comment.