8 Commits

Author SHA1 Message Date
gronod 6d9ea0ed82 ci: remove artifact upload step from build workflow
Build and Package Arduino Firmware / build (push) Successful in 4m17s
2026-06-14 18:17:31 +01:00
gronod c2bd58a0ed ci: replace compile-sketches action with manual Arduino CLI installation and compilation
Build and Package Arduino Firmware / build (push) Failing after 4m27s
2026-06-14 18:08:08 +01:00
gronod 8b14844ed1 chore: add VSCode Arduino helper configuration file
Build and Package Arduino Firmware / build (push) Failing after 55s
2026-06-14 15:07:50 +01:00
gronod 7e739369ef CI: Tag-only release workflow with cross-platform curl upload 2026-06-14 15:05:45 +01:00
gronod 8550857711 Add LICENSE.md
Build and Package Arduino Firmware / build (push) Failing after 1m7s
2026-06-14 08:44:08 +01:00
gronod 6b7496d643 ci: Update compile-action to compile-sketches to resolve checkout failure
Build and Package Arduino Firmware / build (push) Failing after 2m27s
2026-06-12 15:54:31 +01:00
gronod 5308785d44 ci: add GitHub Actions workflow to build, package, and artifact Arduino firmware
Build and Package Arduino Firmware / build (push) Failing after 39s
2026-06-12 14:14:20 +01:00
gronod 4b8c40a107 chore: add build and sdkconfig files to .gitignore 2026-06-12 14:06:48 +01:00
4 changed files with 123 additions and 0 deletions
+99
View File
@@ -0,0 +1,99 @@
name: Build and Package Arduino Firmware
on:
push:
tags:
- 'v*'
jobs:
build:
runs-on: ubuntu-latest
permissions:
contents: write
steps:
- name: Checkout Repository
uses: actions/checkout@v4
- name: Configure Safe Directory
run: |
git config --global --add safe.directory "*"
- name: Set Version Identifier
run: |
TAG=${GITHUB_REF#refs/tags/}
echo "$TAG" > version.txt
echo "Build version (tag): $TAG"
- name: Install Arduino CLI
run: |
curl -fsSL https://raw.githubusercontent.com/arduino/arduino-cli/master/install.sh | sh
mv bin/arduino-cli /usr/local/bin/
arduino-cli config init
arduino-cli config add board_manager.additional_urls https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_index.json
arduino-cli core update-index
arduino-cli core install esp32:esp32
- name: Compile Arduino Sketch
run: |
mkdir -p build
arduino-cli compile --fqbn esp32:esp32:esp32 --output-dir build .
- name: Stage Firmware Binaries
run: |
mkdir -p dist
cp build/*.bin dist/
- name: Create Flashing Instructions Document
run: |
cat << 'EOF' > dist/README_FLASHING.txt
ESP32 ALDL Bridge Arduino Firmware Flash Instructions
===================================================
You can flash the compiled .bin file using esptool.py or any generic ESP32 flashing tool.
EOF
- name: Package Release
run: |
TAG=${GITHUB_REF#refs/tags/}
tar -czvf "esp32-aldl-${TAG}.tar.gz" -C dist .
- name: Create Release and Upload Asset
env:
TOKEN: ${{ secrets.GITHUB_TOKEN }}
API_URL: ${{ github.api_url }}
REPO: ${{ github.repository }}
run: |
TAG=${GITHUB_REF#refs/tags/}
FILE="esp32-aldl-${TAG}.tar.gz"
NAME="${TAG}"
# 1. Create the release
RESP=$(curl -s -H "Authorization: token $TOKEN" \
-H "Content-Type: application/json" \
-d "{\"tag_name\":\"$TAG\",\"name\":\"$NAME\",\"body\":\"Release $TAG\"}" \
"$API_URL/repos/$REPO/releases")
# 2. Extract upload endpoint
UPLOAD_URL=$(echo "$RESP" | jq -r '.upload_url // empty')
RELEASE_ID=$(echo "$RESP" | jq -r '.id // empty')
# 3. Upload asset
if [ -n "$UPLOAD_URL" ]; then
# GitHub style (upload_url contains {?name,label})
UPLOAD_URL="${UPLOAD_URL%\{?name,label\}}"
curl -s -H "Authorization: token $TOKEN" \
-H "Content-Type: application/gzip" \
--data-binary @$FILE \
"${UPLOAD_URL}?name=${FILE}"
elif [ -n "$RELEASE_ID" ]; then
# Gitea style (POST to /releases/{id}/assets)
curl -s -H "Authorization: token $TOKEN" \
-H "Content-Type: application/gzip" \
--data-binary @$FILE \
"$API_URL/repos/$REPO/releases/$RELEASE_ID/assets?name=${FILE}"
else
echo "Failed to create release"
echo "$RESP"
exit 1
fi
+2
View File
@@ -0,0 +1,2 @@
build/
sdkconfig
+1
View File
@@ -0,0 +1 @@
{}
+21
View File
@@ -0,0 +1,21 @@
MIT License
Copyright Gordon Bolton (c) 2026
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.