Skip to content

release: prepare v1.4.0 #27

release: prepare v1.4.0

release: prepare v1.4.0 #27

Workflow file for this run

name: Packages
on:
push:
tags: ['v*']
workflow_dispatch:
jobs:
deb-debian:
name: Debian package
runs-on: ubuntu-latest
container: debian:bookworm
steps:
- uses: actions/checkout@v4
with:
path: radfu
- name: Install build dependencies
run: |
apt-get update
apt-get install -y build-essential debhelper meson ninja-build pkg-config libcmocka-dev help2man
- name: Build package
working-directory: radfu
run: dpkg-buildpackage -us -uc -b
- name: Upload artifact
uses: actions/upload-artifact@v4
with:
name: deb-debian
path: "*.deb"
deb-ubuntu:
name: Ubuntu package
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
path: radfu
- name: Install build dependencies
run: |
sudo apt-get update
sudo apt-get install -y build-essential debhelper meson ninja-build libcmocka-dev help2man
- name: Build package
working-directory: radfu
run: dpkg-buildpackage -us -uc -b
- name: Upload artifact
uses: actions/upload-artifact@v4
with:
name: deb-ubuntu
path: "*.deb"
rpm-fedora:
name: Fedora package
runs-on: ubuntu-latest
container: fedora:latest
steps:
- uses: actions/checkout@v4
- name: Install build dependencies
run: dnf install -y rpm-build meson ninja-build gcc libcmocka-devel help2man
- name: Create tarball
run: |
VERSION=$(grep '^Version:' radfu.spec | awk '{print $2}')
mkdir -p ~/rpmbuild/{SOURCES,SPECS}
tar czf ~/rpmbuild/SOURCES/radfu-${VERSION}.tar.gz --transform "s,^,radfu-${VERSION}/," *
cp radfu.spec ~/rpmbuild/SPECS/
- name: Build RPM
run: rpmbuild -bb ~/rpmbuild/SPECS/radfu.spec
- name: Copy RPM to workspace
run: cp ~/rpmbuild/RPMS/*/*.rpm .
- name: Upload artifact
uses: actions/upload-artifact@v4
with:
name: rpm-fedora
path: "*.rpm"
linux-x86_64-static:
name: Linux x86_64 static binary
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Install dependencies
run: |
sudo apt-get update
sudo apt-get install -y meson ninja-build
- name: Build static
run: |
meson setup build -Dstatic=true -Dtests=false
meson compile -C build
- name: Upload artifact
uses: actions/upload-artifact@v4
with:
name: linux-x86_64-static
path: build/radfu
linux-arm64:
name: Linux ARM64 binary
runs-on: ubuntu-24.04-arm
steps:
- uses: actions/checkout@v4
- name: Install dependencies
run: |
sudo apt-get update
sudo apt-get install -y meson ninja-build
- name: Build
run: |
meson setup build -Dtests=false
meson compile -C build
- name: Upload artifact
uses: actions/upload-artifact@v4
with:
name: linux-arm64
path: build/radfu
linux-arm64-static:
name: Linux ARM64 static binary
runs-on: ubuntu-24.04-arm
steps:
- uses: actions/checkout@v4
- name: Install dependencies
run: |
sudo apt-get update
sudo apt-get install -y meson ninja-build
- name: Build static
run: |
meson setup build -Dstatic=true -Dtests=false
meson compile -C build
- name: Upload artifact
uses: actions/upload-artifact@v4
with:
name: linux-arm64-static
path: build/radfu
macos:
name: macOS binary
runs-on: macos-latest
steps:
- uses: actions/checkout@v4
- name: Install dependencies
run: brew install meson ninja
- name: Build
run: |
meson setup build -Dtests=false
meson compile -C build
- name: Upload artifact
uses: actions/upload-artifact@v4
with:
name: macos-arm64
path: build/radfu
windows:
name: Windows binary
runs-on: windows-latest
steps:
- uses: actions/checkout@v4
- name: Install Meson
run: pip install meson ninja
- name: Setup MSVC
uses: ilammy/msvc-dev-cmd@v1
- name: Build
run: |
meson setup build -Dtests=false
meson compile -C build
- name: Upload artifact
uses: actions/upload-artifact@v4
with:
name: windows-x86_64
path: build/radfu.exe
release:
name: Create Release
if: startsWith(github.ref, 'refs/tags/v')
needs: [deb-debian, deb-ubuntu, rpm-fedora, linux-x86_64-static, linux-arm64, linux-arm64-static, macos, windows]
runs-on: ubuntu-latest
permissions:
contents: write
steps:
- name: Download all artifacts
uses: actions/download-artifact@v4
- name: Prepare release assets
run: |
mv deb-debian/radfu_*_amd64.deb radfu_${{ github.ref_name }}_amd64-debian.deb
mv deb-ubuntu/radfu_*_amd64.deb radfu_${{ github.ref_name }}_amd64-ubuntu.deb
mv rpm-fedora/radfu-*.x86_64.rpm .
mv linux-x86_64-static/radfu radfu-${{ github.ref_name }}-linux-x86_64-static
mv linux-arm64/radfu radfu-${{ github.ref_name }}-linux-arm64
mv linux-arm64-static/radfu radfu-${{ github.ref_name }}-linux-arm64-static
mv macos-arm64/radfu radfu-${{ github.ref_name }}-macos-arm64
mv windows-x86_64/radfu.exe radfu-${{ github.ref_name }}-windows-x86_64.exe
chmod +x radfu-${{ github.ref_name }}-linux-* radfu-${{ github.ref_name }}-macos-*
ls -la *.deb *.rpm radfu-*-linux-* radfu-*-macos-* radfu-*-windows-*
- name: Create release
uses: softprops/action-gh-release@v2
with:
name: ${{ github.ref_name }}
generate_release_notes: false
body: |
Release ${{ github.ref_name }} of RADFU - Renesas RA Device Firmware Update tool.
A flash programming tool for Renesas RA microcontroller series that communicates with the built-in ROM bootloader via USB or UART/SCI interfaces.
## Features
- Read/write/erase flash memory
- Query device information
- ID authentication for protected devices
- Auto-detect Renesas USB devices
- Configurable UART baud rate
## Supported Devices
- RA4 Series (Cortex-M4/M23) - tested
- RA2 Series (Cortex-M23)
- RA6 Series (Cortex-M33)
## Quick Install
curl -fsSL https://raw.githubusercontent.com/${{ github.repository }}/master/install.sh | sudo sh
## Manual Installation
Debian 12 (Bookworm):
wget https://github.com/${{ github.repository }}/releases/download/${{ github.ref_name }}/radfu_${{ github.ref_name }}_amd64-debian.deb
sudo dpkg -i radfu_${{ github.ref_name }}_amd64-debian.deb
Ubuntu 24.04:
wget https://github.com/${{ github.repository }}/releases/download/${{ github.ref_name }}/radfu_${{ github.ref_name }}_amd64-ubuntu.deb
sudo dpkg -i radfu_${{ github.ref_name }}_amd64-ubuntu.deb
Fedora:
sudo dnf install https://github.com/${{ github.repository }}/releases/download/${{ github.ref_name }}/radfu-*.rpm
Linux x86_64 static (no dependencies):
curl -LO https://github.com/${{ github.repository }}/releases/download/${{ github.ref_name }}/radfu-${{ github.ref_name }}-linux-x86_64-static
chmod +x radfu-${{ github.ref_name }}-linux-x86_64-static
sudo mv radfu-${{ github.ref_name }}-linux-x86_64-static /usr/local/bin/radfu
Linux ARM64 (Raspberry Pi, etc.):
curl -LO https://github.com/${{ github.repository }}/releases/download/${{ github.ref_name }}/radfu-${{ github.ref_name }}-linux-arm64
chmod +x radfu-${{ github.ref_name }}-linux-arm64
sudo mv radfu-${{ github.ref_name }}-linux-arm64 /usr/local/bin/radfu
Linux ARM64 static (no dependencies):
curl -LO https://github.com/${{ github.repository }}/releases/download/${{ github.ref_name }}/radfu-${{ github.ref_name }}-linux-arm64-static
chmod +x radfu-${{ github.ref_name }}-linux-arm64-static
sudo mv radfu-${{ github.ref_name }}-linux-arm64-static /usr/local/bin/radfu
macOS (Apple Silicon):
curl -LO https://github.com/${{ github.repository }}/releases/download/${{ github.ref_name }}/radfu-${{ github.ref_name }}-macos-arm64
chmod +x radfu-${{ github.ref_name }}-macos-arm64
sudo mv radfu-${{ github.ref_name }}-macos-arm64 /usr/local/bin/radfu
Windows:
curl -LO https://github.com/${{ github.repository }}/releases/download/${{ github.ref_name }}/radfu-${{ github.ref_name }}-windows-x86_64.exe
# Move to a directory in your PATH
files: |
*.deb
*.rpm
radfu-*-linux-*
radfu-*-macos-*
radfu-*-windows-*