VS2026 #647
Workflow file for this run
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| 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 |