name: Test_Build # Controls when the workflow will run on: # Allows you to run this workflow manually from the Actions tab workflow_dispatch: inputs: name: description: 'App Name, PR #, or zip URL' required: true default: '' buster: description: 'Build on PiOS Buster' required: true type: boolean bullseye: description: 'Build on PiOS Bullseye' required: true type: boolean architecture: type: choice description: 'For Buster/Bullseye, test on 32bit, 64bit, or Both if available' options: - 32bit - 64bit - Both bookworm_64: description: 'Build on PiOS Bookworm Beta' required: true type: boolean bionic_64: description: 'Build on Switchroot Ubuntu 5.1.1 Bionic 64bit' required: true type: boolean focal_64: description: 'Build on Nvidia Jetpack 35.3.1 Focal 64bit' required: true type: boolean jammy_64: description: 'Build on RPI Ubuntu Jammy 64bit' required: true type: boolean l4t_jammy_64: description: 'Build on L4T Ubuntu Jammy 64bit' required: true type: boolean lunar_64: description: 'Build on RPI Ubuntu Lunar 64bit' required: true type: boolean run-name: Testing ${{ inputs.name }} # A workflow run is made up of one or more jobs that can run sequentially or in parallel jobs: buster-32bit: # The type of runner that the job will run on runs-on: ubuntu-latest if: ${{ inputs.buster && ( inputs.architecture == '32bit' || inputs.architecture == 'Both' ) }} # Steps represent a sequence of tasks that will be executed as part of the job steps: # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it - uses: actions/checkout@v3 - name: Test installing app on buster armhf uses: theofficialgman/arm-runner-action@v12 with: # this is a buster armhf image base_image: https://downloads.raspberrypi.org/raspios_oldstable_armhf/images/raspios_oldstable_armhf-2023-05-03/2023-05-03-raspios-buster-armhf.img.xz # bind mount the directory so any changes propogate to outside the chroot bind_mount_repository: yes # give the image more space image_additional_mb: 5000 # set CPUs to use cpu: cortex-a7:cortex-a72 # use custom /proc/cpuinfo cpu_info: cpuinfo/raspberrypi_4b # user runner name as default path copy_repository_path: /home/runner/pi-apps # export github env back to outside the chroot export_github_env: yes import_github_env: true # set shell to bash shell: /bin/bash commands: | export name="${{ inputs.name }}" ./.github/workflows/test_build_commands.sh bullseye-32bit: runs-on: ubuntu-latest if: ${{ inputs.bullseye && ( inputs.architecture == '32bit' || inputs.architecture == 'Both' ) }} steps: - uses: actions/checkout@v3 - name: Test installing app on bullseye armhf uses: theofficialgman/arm-runner-action@v12 with: base_image: https://downloads.raspberrypi.org/raspios_armhf/images/raspios_armhf-2023-05-03/2023-05-03-raspios-bullseye-armhf.img.xz bind_mount_repository: yes image_additional_mb: 5000 cpu: cortex-a7:cortex-a72 cpu_info: cpuinfo/raspberrypi_4b copy_repository_path: /home/runner/pi-apps export_github_env: yes import_github_env: true shell: /bin/bash commands: | export name="${{ inputs.name }}" ./.github/workflows/test_build_commands.sh buster-64bit: runs-on: ubuntu-latest if: ${{ inputs.buster && ( inputs.architecture == '64bit' || inputs.architecture == 'Both' ) }} steps: - uses: actions/checkout@v3 - name: Test installing app on buster arm64 uses: theofficialgman/arm-runner-action@v12 with: base_image: https://downloads.raspberrypi.org/raspios_arm64/images/raspios_arm64-2021-05-28/2021-05-07-raspios-buster-arm64.zip bind_mount_repository: yes image_additional_mb: 5000 cpu: cortex-a7:cortex-a72 cpu_info: cpuinfo/raspberrypi_4b copy_repository_path: /home/runner/pi-apps export_github_env: yes import_github_env: true shell: /bin/bash commands: | export name="${{ inputs.name }}" ./.github/workflows/test_build_commands.sh bullseye-64bit: runs-on: ubuntu-latest if: ${{ inputs.bullseye && ( inputs.architecture == '64bit' || inputs.architecture == 'Both' ) }} steps: - uses: actions/checkout@v3 - name: Test installing app on bullseye arm64 uses: theofficialgman/arm-runner-action@v12 with: base_image: https://downloads.raspberrypi.org/raspios_arm64/images/raspios_arm64-2023-05-03/2023-05-03-raspios-bullseye-arm64.img.xz bind_mount_repository: yes image_additional_mb: 5000 cpu: cortex-a7:cortex-a72 cpu_info: cpuinfo/raspberrypi_4b copy_repository_path: /home/runner/pi-apps export_github_env: yes import_github_env: true shell: /bin/bash commands: | export name="${{ inputs.name }}" ./.github/workflows/test_build_commands.sh bookworm-64bit: runs-on: ubuntu-latest if: ${{ inputs.bookworm_64 }} steps: - uses: actions/checkout@v3 - name: Test installing app on bookworm arm64 uses: theofficialgman/arm-runner-action@v12 with: base_image: ${{ secrets.RPIOS_BOOKWORM_URL }} bind_mount_repository: yes image_additional_mb: 5000 # disable image caching to not leak the URL enable_image_caching: no cpu: cortex-a7:cortex-a72 cpu_info: cpuinfo/raspberrypi_4b copy_repository_path: /home/runner/pi-apps export_github_env: yes import_github_env: true shell: /bin/bash commands: | export name="${{ inputs.name }}" ./.github/workflows/test_build_commands.sh bionic-64bit: runs-on: ubuntu-latest if: ${{ inputs.bionic_64 }} steps: - uses: actions/checkout@v3 - name: Test installing app on bionic arm64 uses: theofficialgman/arm-runner-action@v12 with: base_image: https://download.switchroot.org/ubuntu/switchroot-ubuntu-5.1.1-2023-06-12.7z # add special arguments for switchroot image format bootpartition: rootpartition: 1 bind_mount_repository: yes image_additional_mb: 5000 # use TX1 ARM CPU cores cpu: cortex-a7:cortex-a57 copy_repository_path: /home/runner/pi-apps export_github_env: yes import_github_env: true shell: /bin/bash commands: | export name="${{ inputs.name }}" ./.github/workflows/test_build_commands.sh focal-64bit: runs-on: ubuntu-latest if: ${{ inputs.focal_64 }} steps: - uses: actions/checkout@v3 - name: Clear up some disk space run: | # Workaround to provide additional free space for testing. # https://github.com/actions/virtual-environments/issues/2840 sudo rm -rf /usr/share/dotnet sudo rm -rf /opt/ghc sudo rm -rf "/usr/local/share/boost" sudo rm -rf "$AGENT_TOOLSDIRECTORY" - name: Test installing app on focal arm64 uses: theofficialgman/arm-runner-action@v12 with: base_image: https://developer.nvidia.com/downloads/embedded/l4t/r35_release_v3.1/sd_card_b49/jp511-xnx-sd-card-image.zip bootpartition: rootpartition: 1 bind_mount_repository: yes image_additional_mb: 5000 enable_image_caching: no cpu: cortex-a7:cortex-a72 copy_repository_path: /home/runner/pi-apps export_github_env: yes import_github_env: true shell: /bin/bash commands: | export name="${{ inputs.name }}" ./.github/workflows/test_build_commands.sh jammy-64bit: runs-on: ubuntu-latest if: ${{ inputs.jammy_64 }} steps: - uses: actions/checkout@v3 - name: Test installing app on jammy arm64 uses: theofficialgman/arm-runner-action@v12 with: base_image: https://cdimage.ubuntu.com/releases/22.04.2/release/ubuntu-22.04.2-preinstalled-desktop-arm64+raspi.img.xz bind_mount_repository: yes image_additional_mb: 5000 cpu: cortex-a7:cortex-a72 cpu_info: cpuinfo/raspberrypi_4b copy_repository_path: /home/runner/pi-apps export_github_env: yes import_github_env: true shell: /bin/bash commands: | export name="${{ inputs.name }}" ./.github/workflows/test_build_commands.sh l4t-jammy-64bit: runs-on: ubuntu-latest if: ${{ inputs.l4t_jammy_64 }} steps: - uses: actions/checkout@v3 - name: Test installing app on L4T jammy arm64 uses: theofficialgman/arm-runner-action@v12 with: base_image: https://github.com/theofficialgman/testing/releases/download/gmans-releases/theofficialgman-ubuntu-jammy-5.1.1-2023-08-19.7z # add special arguments for switchroot image format bootpartition: rootpartition: 1 bind_mount_repository: yes image_additional_mb: 5000 # use TX1 ARM CPU cores cpu: cortex-a7:cortex-a57 copy_repository_path: /home/runner/pi-apps export_github_env: yes import_github_env: true shell: /bin/bash commands: | export name="${{ inputs.name }}" ./.github/workflows/test_build_commands.sh lunar-64bit: runs-on: ubuntu-latest if: ${{ inputs.lunar_64 }} steps: - uses: actions/checkout@v3 - name: Test installing app on lunar arm64 uses: theofficialgman/arm-runner-action@v12 with: base_image: https://cdimage.ubuntu.com/releases/23.04/release/ubuntu-23.04-preinstalled-desktop-arm64+raspi.img.xz bind_mount_repository: yes image_additional_mb: 5000 cpu: cortex-a7:cortex-a72 cpu_info: cpuinfo/raspberrypi_4b copy_repository_path: /home/runner/pi-apps export_github_env: yes import_github_env: true shell: /bin/bash commands: | export name="${{ inputs.name }}" ./.github/workflows/test_build_commands.sh