Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merge #957

Closed
wants to merge 2 commits into from
Closed

Merge #957

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
150 changes: 76 additions & 74 deletions .github/workflows/build_esptool.yml
Original file line number Diff line number Diff line change
@@ -1,39 +1,32 @@
name: Build esptool

on: [push, pull_request]
on:
workflow_dispatch:
push:
paths-ignore:
- '.github/**' # Ignore changes towards the .github directory

jobs:
build-esptool-binaries:
name: Build esptool binaries for ${{ matrix.platform }}
runs-on: ${{ matrix.RUN_ON }}
name: Build esptool binaries for ${{ matrix.os }}
runs-on: ${{ matrix.os }}
strategy:
matrix:
platform: [macos, windows, linux-amd64, linux-arm32, linux-arm64]
os: [macos-14, macos-latest, ubuntu-latest, windows-latest]
include:
- platform: macos
- os: macos-14
TARGET: macos-arm
SEPARATOR: ':'
- os: macos-latest
TARGET: macos
SEPARATOR: ':'
RUN_ON: macos-latest
- platform: windows
- os: ubuntu-latest
TARGET: linux-amd64
SEPARATOR: ':'
- os: windows-latest
TARGET: win64
EXTEN: .exe
SEPARATOR: ';'
RUN_ON: windows-latest
- platform: linux-amd64
TARGET: linux-amd64
SEPARATOR: ':'
RUN_ON: ubuntu-20.04
- platform: linux-arm32
CONTAINER: python:3.8-bullseye
TARGET: linux-arm32
SEPARATOR: ':'
RUN_ON: [ARM, self-hosted, linux]
- platform: linux-arm64
CONTAINER: python:3.8-bullseye
TARGET: linux-arm64
SEPARATOR: ':'
RUN_ON: [ARM64, self-hosted, linux]
container: ${{ matrix.CONTAINER }} # use python container on ARM
env:
DISTPATH: esptool-${{ matrix.TARGET }}
STUBS_DIR: ./esptool/targets/stub_flasher/
Expand All @@ -42,12 +35,10 @@ jobs:
steps:
- name: Checkout repository
uses: actions/checkout@master
- name: Set up Python 3.8
# Skip setting python on ARM because of missing compatibility: https://github.com/actions/setup-python/issues/108
if: matrix.platform != 'linux-arm32' && matrix.platform != 'linux-arm64'
- name: Set up Python 3.11
uses: actions/setup-python@master
with:
python-version: 3.8
python-version: 3.11
- name: Install dependencies
# PyInstaller >=6.0 results in significantly more antivirus false positives
run: |
Expand All @@ -60,72 +51,83 @@ jobs:
pyinstaller --distpath ./${{ env.DISTPATH }} -F --icon=ci/espressif.ico --add-data="${{ env.EFUSE_DIR }}*.yaml${{ matrix.SEPARATOR }}${{ env.EFUSE_DIR }}" espefuse.py
pyinstaller --distpath ./${{ env.DISTPATH }} -F --icon=ci/espressif.ico espsecure.py
pyinstaller --distpath ./${{ env.DISTPATH }} -F --icon=ci/espressif.ico esp_rfc2217_server.py
- name: Sign binaries
if: matrix.platform == 'windows' && github.event_name != 'pull_request'
env:
CERTIFICATE: ${{ secrets.CERTIFICATE }}
CERTIFICATE_PASSWORD: ${{ secrets.CERTIFICATE_PASSWORD }}
shell: pwsh
run: |
./ci/Sign-File.ps1 -Path ./${{ env.DISTPATH }}/esptool.exe
./ci/Sign-File.ps1 -Path ./${{ env.DISTPATH }}/espefuse.exe
./ci/Sign-File.ps1 -Path ./${{ env.DISTPATH }}/espsecure.exe
./ci/Sign-File.ps1 -Path ./${{ env.DISTPATH }}/esp_rfc2217_server.exe
- name: Test binaries
shell: bash
run: |
./${{ env.DISTPATH }}/esptool${{ matrix.EXTEN }} -h
./${{ env.DISTPATH }}/espefuse${{ matrix.EXTEN }} -h
./${{ env.DISTPATH }}/espsecure${{ matrix.EXTEN }} -h
./${{ env.DISTPATH }}/esp_rfc2217_server${{ matrix.EXTEN }} -h
- name: Add license and readme
shell: bash
run: mv LICENSE README.md ./${{ env.DISTPATH }}
- name: Archive artifact
uses: actions/upload-artifact@master
with:
name: ${{ env.DISTPATH }}
path: ${{ env.DISTPATH }}
- name: Build stub
if: matrix.os == 'ubuntu-latest'
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
- name: Archive stubs artifact
if: matrix.os == 'ubuntu-latest'
uses: actions/upload-artifact@master
with:
name: stubs
path: /home/runner/work/esptool/esptool/flasher_stub/build

create_release:
name: Create GitHub release
if: startsWith(github.ref, 'refs/tags/') && !(contains(github.ref_name, 'dev'))
push_stubs:
name: Commit changed files
needs: build-esptool-binaries
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
- name: Checkout repository
uses: actions/checkout@master
with:
fetch-depth: 0
- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install --user -e ".[dev]"
- 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
- name: Download builded stubs
uses: actions/download-artifact@master
- name: Compress and rename binaries
with:
name: stubs
path: ./mv_stubs
- name: Display structure of downloaded files
run: |
for dir in esptool-*; do
zip -r "esptool-v${{ steps.get_version.outputs.VERSION }}-${dir#esptool-}.zip" "$dir"
done
- name: Create release
id: create_release
uses: softprops/action-gh-release@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
ls -R
- name: Move stubs in folder
run: |
rm ./esptool/targets/stub_flasher/*
cp -R ./mv_stubs/*.json ./esptool/targets/stub_flasher
ls -R ./esptool/targets/stub_flasher
rm -rf ./mv_stubs
- uses: stefanzweifel/git-auto-commit-action@v5
with:
body_path: changelog_body.md
name: Version ${{ steps.get_version.outputs.VERSION }}
draft: true
prerelease: false
files: esptool-v${{ steps.get_version.outputs.VERSION }}-*.zip
commit_message: Stubs updated

release:
name: Upload release binaries
needs: build-esptool-binaries
runs-on: ubuntu-latest
steps:
- name: Download built binaries
uses: actions/download-artifact@master
- name: Rename and package binaries
run: |
zip -r esptool-macos-arm.zip ./esptool-macos-arm
zip -r esptool-macos.zip ./esptool-macos
zip -r esptool-linux-amd64.zip ./esptool-linux-amd64
zip -r esptool-win64.zip ./esptool-win64
- name: Release
uses: jason2866/action-gh-release@v1.3
with:
tag_name: ${{ github.run_number }}
prerelease: true
files: |
*.zip
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
25 changes: 0 additions & 25 deletions .github/workflows/dangerjs.yml

This file was deleted.

41 changes: 0 additions & 41 deletions .github/workflows/dev_release_esptool_pypi.yml

This file was deleted.

20 changes: 0 additions & 20 deletions .github/workflows/issue_comment.yml

This file was deleted.

20 changes: 0 additions & 20 deletions .github/workflows/new_issues.yml

This file was deleted.

25 changes: 0 additions & 25 deletions .github/workflows/new_prs.yml

This file was deleted.

40 changes: 0 additions & 40 deletions .github/workflows/release_esptool_pypi.yml

This file was deleted.

6 changes: 3 additions & 3 deletions .github/workflows/test_esptool.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ jobs:

strategy:
matrix:
python-version: ['3.7', '3.8', '3.9', '3.10', '3.11', '3.12']
python-version: ['3.9', '3.10', '3.11', '3.12']

steps:
- name: Checkout ref commit
Expand Down Expand Up @@ -46,8 +46,8 @@ jobs:
pytest -m host_test
pytest test/test_espsecure_hsm.py
- name: Build stub (Python 3.7 only)
if: matrix.python-version == 3.7
- name: Build stub (Python 3.9 only)
if: matrix.python-version == 3.9
run: |
export TOOLCHAIN_DIR=$HOME/toolchain
Expand Down
Loading