Linux fixes #333
This file contains 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: "false" | |
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/[email protected] | |
- 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: Script Install | |
run: sudo ./scripts/${{ env.TARGET }}/raspios/${{ env.ARCH }}/install.sh | |
- name: Setup Cross Compiler and Target Local File System | |
run: sudo ./scripts/${{ env.TARGET }}/raspios/${{ env.ARCH }}/setup.sh | |
- name: Build | |
run: ./scripts/${{ env.TARGET }}/raspios/${{ 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 }} | |
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/[email protected] | |
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.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/[email protected] | |
- 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: ./scripts/${{ env.TARGET }}/raspios/${{ env.ARCH }}/setup.sh | |
- name: Script Install and Build | |
run: ./scripts/${{ env.TARGET }}/raspios/${{ env.ARCH }}/install.sh | |
- name: Script Install and Build | |
run: ./scripts/${{ env.TARGET }}/raspios/${{ env.ARCH }}/build.sh | |
- 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/[email protected] | |
with: | |
token: ${{ secrets.GITHUB_TOKEN }} | |
tag_name: ${{ env.RELEASE }} | |
draft: false | |
files: out/openFrameworksLibs_${{ env.RELEASE }}_${{ env.TARGET }}_${{ env.ARCH }}.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/[email protected] | |
- 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/[email protected] | |
# 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: ./scripts/${{ env.TARGET }}/raspios/${{ env.ARCH }}/setup.sh | |
- name: Script Install and Build | |
run: ./scripts/${{ env.TARGET }}/raspios/${{ env.ARCH }}/install.sh | |
- name: Script Install and Build | |
run: ./scripts/${{ env.TARGET }}/raspios/${{ env.ARCH }}/build.sh | |
- name: Update Release armv7l | |
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/[email protected] | |
with: | |
token: ${{ secrets.GITHUB_TOKEN }} | |
tag_name: ${{ env.RELEASE }} | |
draft: false | |
files: out/openFrameworksLibs_${{ env.RELEASE }}_${{ env.TARGET }}_${{ env.ARCH }}.tar.bz2 |