Skip to content

VS2026

VS2026 #647

Workflow file for this run

name: build-linux-rpi
on:
push:
paths-ignore:
- "**/README.md"
pull_request:
paths-ignore:
- "**/README.md"
concurrency:
group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }}
cancel-in-progress: true
env:
TARGET: "linux"
NO_FORCE: 1
GA_CI_SECRET: ${{ secrets.CI_SECRET }}
USE_ARTIFACT: false
DISABLE_WORKFLOW: "true"
DISTRO: raspios
jobs:
pre-check:
runs-on: ubuntu-latest
outputs:
workflow_disabled: ${{ steps.check-disabled.outputs.disabled }}
steps:
- name: Check if Workflow is disabled
id: check-disabled
shell: bash
run: |
if [ "${{ env.DISABLE_WORKFLOW }}" == "true" ]; then
echo "disabled=true" >> $GITHUB_ENV
echo "::set-output name=disabled::true"
else
echo "::set-output name=disabled::false"
fi
- name: Determine Release
id: vars
shell: bash
run: |
if [[ "${{ github.ref }}" == refs/tags/* ]]; then
echo "::set-output name=RELEASE=${{ github.ref_name }}"
elif [[ "${{ github.ref }}" == "refs/heads/master" ]]; then
echo "::set-output name=RELEASE=nightly"
elif [[ "${{ github.ref }}" == "refs/heads/bleeding" ]]; then
echo "::set-output name=RELEASE=latest"
else
echo "::set-output name=RELEASE=latest"
fi
build-linux-aarch64:
if: needs.pre-check.outputs.workflow_disabled != 'true'
needs: pre-check
runs-on: ubuntu-latest
strategy:
matrix:
CROSS_CPU: [cortex-a53] #cortex-a72, cortex-a76
CROSS_OS: [bookworm]
ARCH: [aarch64]
env:
CROSS_COMPILER: raspbian
WORKDIR: "/home/runner/work/apothecary/apothecary"
SYSROOT: "${WORKDIR}/${{ matrix.CROSS_OS }}_sysroot"
TOOLCHAIN_ROOT: "${WORKDIR}/${CROSS_COMPILER}"
steps:
- uses: actions/checkout@v4.2.2
- name: Setup Environment
run: |
echo "Setting up environment for ${{ matrix.CROSS_OS }} ${{ matrix.CROSS_CPU }} ${ARCH}"
echo "CROSS_CPU: ${{ matrix.CROSS_CPU }}"
echo "SYSROOT: ${SYSROOT}"
echo "TOOLCHAIN_ROOT: ${TOOLCHAIN_ROOT}"
echo "CROSS_OS=${{ matrix.CROSS_OS }}" >> $GITHUB_ENV
echo "ARCH=${{ matrix.ARCH }}" >> $GITHUB_ENV
- name: Determine Release
id: vars
shell: bash
run: |
if [[ "${{ github.ref }}" == refs/tags/* ]]; then
echo "RELEASE=${{ github.ref_name }}" >> $GITHUB_ENV
elif [[ "${{ github.ref }}" == "refs/heads/master" ]]; then
echo "RELEASE=nightly" >> $GITHUB_ENV
elif [[ "${{ github.ref }}" == "refs/heads/bleeding" ]]; then
echo "RELEASE=latest" >> $GITHUB_ENV
else
echo "RELEASE=latest" >> $GITHUB_ENV
fi
- name: Setup Cross Compiler and Target Local File System
run: sudo ./scripts/${{ env.TARGET }}/${{ env.DISTRO }}/${{ env.ARCH }}/setup.sh
- name: Script Install and Build
run: sudo ./scripts/${{ env.TARGET }}/${{ env.DISTRO }}/${{ env.ARCH }}/install.sh
- name: Script Install and Build
run: ./scripts/${{ env.TARGET }}/${{ env.DISTRO }}/${{ env.ARCH }}/build.sh
- name: Package
#if: github.repository == 'openframeworks/apothecary' && github.event_name == 'push' && (startsWith(github.ref, 'refs/tags/') || github.ref == 'refs/heads/master' || github.ref == 'refs/heads/bleeding')
working-directory: ${{ env.GITHUB_WORKSPACE }}
run: scripts/package.sh
env:
BUNDLE: ${{ matrix.bundle }}
DISTRO: ${{ env.DISTRO }}
GCC: "_${{ matrix.CROSS_CPU }}_${{ matrix.CROSS_OS }}"
- name: List output directory
run: ls -lah out/
- name: Update Release
if: github.repository == 'openframeworks/apothecary' && github.event_name == 'push' && (startsWith(github.ref, 'refs/tags/') || github.ref == 'refs/heads/master' || github.ref == 'refs/heads/bleeding')
uses: softprops/action-gh-release@v2.1.0
env:
GCC: "_${{ matrix.CROSS_CPU }}_${{ matrix.CROSS_OS }}"
with:
token: ${{ secrets.GITHUB_TOKEN }}
tag_name: ${{ env.RELEASE }}
draft: false
files: out/openFrameworksLibs_${{ env.RELEASE }}_${{ env.TARGET }}_${{ env.DISTRO }}_${{ env.ARCH }}_{{ env.GCC }}.tar.bz2
# build-linux-armv6l-pi-1zero:
# if: needs.pre-check.outputs.workflow_disabled != 'true'
# needs: pre-check
# runs-on: ubuntu-latest
# env:
# TARGET: linux
# ARCH: armv7l
# CROSS_COMPILER: raspbian
# CROSS_OS: bookworm
# WORKDIR: "/home/runner/work/apothecary/apothecary"
# SYSROOT: "${WORKDIR}/${CROSS_SYSROOT}"
# TOOLCHAIN_ROOT: "${WORKDIR}/${CROSS_COMPILER}"
# TOOLCHAIN_PREFIX: "arm-linux-gnueabihf"
# steps:
# - uses: actions/checkout@v4.2.2
# - name: Determine Release
# id: vars
# shell: bash
# run: |
# if [[ "${{ github.ref }}" == refs/tags/* ]]; then
# echo "RELEASE=${{ github.ref_name }}" >> $GITHUB_ENV
# elif [[ "${{ github.ref }}" == "refs/heads/master" ]]; then
# echo "RELEASE=nightly" >> $GITHUB_ENV
# elif [[ "${{ github.ref }}" == "refs/heads/bleeding" ]]; then
# echo "RELEASE=latest" >> $GITHUB_ENV
# else
# echo "RELEASE=latest" >> $GITHUB_ENV
# fi
# - name: Update and Upgrade System Packages
# run: |
# sudo apt update && sudo apt dist-upgrade -y
# sudo apt-get install -y build-essential gcc g++ gfortran git texinfo bison libncurses-dev tar wget qemu-user-static rsync xz-utils
# - name: Setup Cross Compiler and Target Local File System
# run: sudo ./scripts/${{ env.TARGET }}/${{ env.DISTRO }}/${{ env.ARCH }}/setup.sh
# - name: Script Install and Build
# run: sudo ./scripts/${{ env.TARGET }}/${{ env.DISTRO }}/${{ env.ARCH }}/install.sh
# - name: Script Install and Build
# run: ./scripts/${{ env.TARGET }}/${{ env.DISTRO }}/${{ env.ARCH }}/build.sh
# - name: Package
# #if: github.repository == 'openframeworks/apothecary' && github.event_name == 'push' && (startsWith(github.ref, 'refs/tags/') || github.ref == 'refs/heads/master' || github.ref == 'refs/heads/bleeding')
# working-directory: ${{ env.GITHUB_WORKSPACE }}
# run: scripts/package.sh
# env:
# BUNDLE: ${{ matrix.bundle }}
# DISTRO: ${{ env.DISTRO }}
# GCC: "_${{ matrix.CROSS_CPU }}_${{ matrix.CROSS_OS }}"
# - name: List output directory
# run: ls -lah out/
# - name: Update Release armv6l
# if: github.repository == 'openframeworks/apothecary' && github.event_name == 'push' && (startsWith(github.ref, 'refs/tags/') || github.ref == 'refs/heads/master' || github.ref == 'refs/heads/bleeding')
# uses: softprops/action-gh-release@v2.1.0
# with:
# token: ${{ secrets.GITHUB_TOKEN }}
# tag_name: ${{ env.RELEASE }}
# draft: false
# files: out/openFrameworksLibs_${{ env.RELEASE }}_${{ env.TARGET }}_${{ env.DISTRO }}_${{ env.ARCH }}_{{ env.GCC }}.tar.bz2
# build-linux-armv7-pi3ab45:
# if: needs.pre-check.outputs.workflow_disabled != 'true'
# needs: pre-check
# runs-on: ubuntu-latest
# env:
# TARGET: linux
# ARCH: armv7l
# CROSS_COMPILER: raspbian
# CROSS_OS: bookworm
# WORKDIR: "/home/runner/work/apothecary/apothecary"
# SYSROOT: "${WORKDIR}/${CROSS_SYSROOT}"
# TOOLCHAIN_ROOT: "${WORKDIR}/${CROSS_COMPILER}"
# TOOLCHAIN_PREFIX: "arm-linux-gnueabihf"
# steps:
# - uses: actions/checkout@v4.2.2
# - name: Check if Workflow is disabled
# run: |
# if [ "${{ env.DISABLE_WORKFLOW }}" == "true" ]; then
# echo "Workflow is disabled. Exiting."
# exit 78
# fi
# - name: Determine Release
# id: vars
# shell: bash
# run: |
# if [[ "${{ github.ref }}" == refs/tags/* ]]; then
# echo "RELEASE=${{ github.ref_name }}" >> $GITHUB_ENV
# elif [[ "${{ github.ref }}" == "refs/heads/master" ]]; then
# echo "RELEASE=nightly" >> $GITHUB_ENV
# elif [[ "${{ github.ref }}" == "refs/heads/bleeding" ]]; then
# echo "RELEASE=latest" >> $GITHUB_ENV
# else
# echo "RELEASE=latest" >> $GITHUB_ENV
# fi
# - name: Update and Upgrade System Packages
# run: |
# sudo apt update && sudo apt dist-upgrade -y
# sudo apt-get install -y build-essential gcc g++ gfortran git texinfo bison libncurses-dev tar wget qemu-user-static rsync xz-utils
# # - name: Cache raspbian folder
# # uses: actions/cache@v4.2.0
# # with:
# # path: /home/runner/work/apothecary/apothecary/raspbian
# # key: raspbian-pi3ab45-cache-2
# # - name: Check if folder exists
# # id: folder-check
# # run: >
# # if [ -d $TOOLCHAIN_ROOT ]; then
# # echo "Raspbian folder already exists. Skipping download and extract."
# # echo "::set-output name=folder-exists::true"
# # else
# # echo "::set-output name=folder-exists::false"
# # fi
# - name: Setup Cross Compiler and Target Local File System
# run: sudo ./scripts/${{ env.TARGET }}/${{ env.DISTRO }}/${{ env.ARCH }}/setup.sh
# - name: Script Install and Build
# run: sudo ./scripts/${{ env.TARGET }}/${{ env.DISTRO }}/${{ env.ARCH }}/install.sh
# - name: Script Install and Build
# run: ./scripts/${{ env.TARGET }}/${{ env.DISTRO }}/${{ env.ARCH }}/build.sh
# - name: Package
# #if: github.repository == 'openframeworks/apothecary' && github.event_name == 'push' && (startsWith(github.ref, 'refs/tags/') || github.ref == 'refs/heads/master' || github.ref == 'refs/heads/bleeding')
# working-directory: ${{ env.GITHUB_WORKSPACE }}
# run: scripts/package.sh
# env:
# BUNDLE: ${{ matrix.bundle }}
# DISTRO: ${{ env.DISTRO }}
# GCC: "_${{ matrix.CROSS_CPU }}_${{ matrix.CROSS_OS }}"
# - name: List output directory
# run: ls -lah out/
# - name: Update Release
# if: github.repository == 'openframeworks/apothecary' && github.event_name == 'push' && (startsWith(github.ref, 'refs/tags/') || github.ref == 'refs/heads/master' || github.ref == 'refs/heads/bleeding')
# uses: softprops/action-gh-release@v2.1.0
# with:
# token: ${{ secrets.GITHUB_TOKEN }}
# tag_name: ${{ env.RELEASE }}
# draft: false
# files: out/openFrameworksLibs_${{ env.RELEASE }}_${{ env.TARGET }}_${{ env.DISTRO }}_${{ env.ARCH }}_{{ env.GCC }}.tar.bz2