Skip to content

WIP

WIP #928

name: Binaries generation
on:
push:
workflow_dispatch:
permissions:
contents: write
packages: read
concurrency:
group: binaries-${{ github.ref }}
cancel-in-progress: true
jobs:
build-linux:
name: Build (Linux targets) - ${{ matrix.target.name }}
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
target:
- name: Linux
# TODO ghcr.io/yadoms/build_for_********:latest
image: ghcr.io/yadoms/build_for_linux:feature-updateRPiBuild_notSureBestMethod
artifact_prefix: Linux
privileged: ""
- name: RaspberryPI (all versions)
# TODO ghcr.io/yadoms/build_for_********:latest
image: ghcr.io/yadoms/build_for_raspberrypi:feature-updateRPiBuild_notSureBestMethod
artifact_prefix: RaspberryPI
privileged: "--privileged"
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Login to GitHub Container Repository (GHCR)
uses: docker/login-action@v3
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Yadoms build script
uses: Yadoms/build-yadoms-action@v4.0.2
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
buildImage: ${{ matrix.target.image }}
privileged: ${{ matrix.target.privileged }}
- name: Archive binaries
uses: actions/upload-artifact@v4
with:
name: ${{ matrix.target.artifact_prefix }}-Binaries
path: ./bin-${{ matrix.target.artifact_prefix }}/package/Yadoms*
- name: Archive update packages
uses: actions/upload-artifact@v4
with:
name: ${{ matrix.target.artifact_prefix }}-Update
path: ./bin-${{ matrix.target.artifact_prefix }}/package/update*
- name: Cleanup Docker credentials
if: always()
run: |
docker logout ghcr.io || true
rm -f ~/.docker/config.json
build-windows:
name: Build (Windows)
runs-on: windows-latest
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Login to GitHub Container Repository (GHCR)
uses: docker/login-action@v3
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Yadoms build script
uses: Yadoms/build-yadoms-windows-action@v2.0.2
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
buildImage: ghcr.io/yadoms/build_for_windows:latest
entrypoint: "powershell.exe -Command C:\\work\\build-scripts\\windows\\entrypoint_docker.ps1" #TODO utile ?
- name: Archive binaries
uses: actions/upload-artifact@v4
with:
name: Windows-Binaries
path: ./bin-windows/package/Yadoms*
- name: Archive update packages
uses: actions/upload-artifact@v4
with:
name: Windows-Update
path: ./bin-windows/package/update*
- name: Cleanup Docker credentials
if: always()
shell: powershell
run: |
docker logout ghcr.io 2>$null
Remove-Item "$env:USERPROFILE\.docker\config.json" -Force -ErrorAction SilentlyContinue
rpi-image:
name: RaspberryPI image - ${{ matrix.language.label }}
runs-on: ubuntu-latest
needs: build-linux
strategy:
fail-fast: false
matrix:
language:
- lang: fr
label: FR
- lang: en
label: EN
steps:
- name: Download RaspberryPI binaries
uses: actions/download-artifact@v4
with:
name: RaspberryPI-Binaries
path: ./
- name: Build RaspberryPI image (${{ matrix.language.label }})
uses: Yadoms/build-yadoms-rpiimage-action@v1.0.1
with:
output_folder: $GITHUB_WORKSPACE/bin-RaspberryPI/pi_image
language: ${{ matrix.language.lang }}
branch_or_tag_name: 2020-12-02-raspbian-buster
- name: Archive RPi image (${{ matrix.language.label }})
uses: actions/upload-artifact@v4
with:
name: Raspbian-Lite-${{ matrix.language.label }}-Yadoms-Image
path: ./bin-RaspberryPI/pi_image/*.zip
release:
name: Create/Update Release (tag only)
runs-on: ubuntu-latest
needs:
- build-linux
- build-windows
- rpi-image
if: github.ref_type == 'tag'
steps:
- name: Download all artifacts
uses: actions/download-artifact@v4
with:
path: dist
merge-multiple: true
- name: Create or update GitHub release
uses: ncipollo/release-action@v1
with:
tag: ${{ github.ref_name }}
name: ${{ github.ref_name }}
draft: true
prerelease: true
allowUpdates: true
omitNameDuringUpdate: true
replacesArtifacts: true
artifacts: "dist/**"
token: ${{ secrets.GITHUB_TOKEN }}