Files
UsbMakroBoard/.gitea/workflows/cd.yaml
Timo Behrendt 263b61336e
All checks were successful
CD / build (amd64, usbmakroboard-amd64, linux_amd64) (push) Successful in 1m13s
CI / build (pull_request) Successful in 1m12s
CD / build (arm64, usbmakroboard-arm64, linux_arm64) (push) Successful in 4m0s
CD / release (push) Successful in 24s
ci: add checksum and differentiage between releases
2025-12-27 12:33:15 +01:00

89 lines
2.8 KiB
YAML

name: CD
on:
push:
branches:
- ci-add-cicd
workflow_dispatch:
jobs:
build:
strategy:
matrix:
include:
- runner: linux_amd64
arch: amd64
artifact_name: usbmakroboard-amd64
- runner: linux_arm64
arch: arm64
artifact_name: usbmakroboard-arm64
runs-on:
- ubuntu-latest
- ${{ matrix.runner }}
steps:
- uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6
with:
fetch-depth: 0
- run: |
sudo apt-get update
sudo apt-get install -y build-essential cmake zip
- name: Configure and build
run: |
mkdir -p build
cd build
cmake ..
cmake --build .
- name: Verify binary
run: |
test -f build/usbmakroboard && echo "Binary built successfully" || exit 1
- name: Create zip archive
run: |
cd build
zip usbmakroboard-linux-${{ matrix.arch }}.zip usbmakroboard
- name: Generate checksum
run: |
cd build
sha256sum usbmakroboard-linux-${{ matrix.arch }}.zip > usbmakroboard-linux-${{ matrix.arch }}.zip.sha256
- name: Upload artifacts
uses: ChristopherHX/gitea-upload-artifact@v4
with:
name: ${{ matrix.artifact_name }}
path: |
build/usbmakroboard-linux-${{ matrix.arch }}.zip
build/usbmakroboard-linux-${{ matrix.arch }}.zip.sha256
retention-days: 1
release:
needs: build
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6
with:
fetch-depth: 0
- uses: https://gitea.t000-n.de/t.behrendt/conventional-semantic-git-tag-increment@0.1.22
id: tag
with:
token: ${{ secrets.GITEA_TOKEN }}
prerelease: ${{ github.event_name == 'workflow_dispatch' }}
- uses: https://gitea.t000-n.de/t.behrendt/actions/release-git-tag@0.1.0
with:
tag: ${{ steps.tag.outputs.new-tag }}
- name: Download artifacts
uses: ChristopherHX/gitea-download-artifact@v4
with:
path: artifacts
- name: Create release
uses: akkuman/gitea-release-action@v1
with:
tag_name: ${{ steps.tag.outputs.new-tag }}
name: ${{ steps.tag.outputs.new-tag }}
files: |
artifacts/usbmakroboard-amd64/usbmakroboard-linux-amd64.zip
artifacts/usbmakroboard-amd64/usbmakroboard-linux-amd64.zip.sha256
artifacts/usbmakroboard-arm64/usbmakroboard-linux-arm64.zip
artifacts/usbmakroboard-arm64/usbmakroboard-linux-arm64.zip.sha256
prerelease: ${{ github.event_name == 'workflow_dispatch' }}
token: ${{ secrets.GITHUB_TOKEN }}