Skip to content

VTOL preflight checklist missing due to build bug #400

VTOL preflight checklist missing due to build bug

VTOL preflight checklist missing due to build bug #400

Workflow file for this run

name: Docker
on:
push:
branches:
- master
- 'Stable*'
tags:
- 'v*'
paths-ignore:
- 'docs/**'
pull_request:
paths:
- '.github/workflows/docker.yml'
- '.github/actions/docker/**'
- '.github/build-config.json'
- 'deploy/docker/**'
- 'deploy/linux/**'
- 'tools/setup/**'
- 'src/**'
- 'CMakeLists.txt'
- 'cmake/**'
workflow_dispatch:
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: ${{ github.ref != 'refs/heads/master' }}
permissions:
contents: read
security-events: write
jobs:
build:
name: Docker ${{ matrix.platform }}
runs-on: ubuntu-latest
timeout-minutes: 120
strategy:
fail-fast: false
matrix:
include:
- platform: Linux
dockerfile: Dockerfile-build-ubuntu
fuse: true
artifact_pattern: "*.AppImage"
- platform: Android
dockerfile: Dockerfile-build-android
fuse: false
artifact_pattern: "*.apk"
defaults:
run:
shell: bash
steps:
- name: Free Disk Space
uses: jlumbroso/[email protected]
with:
tool-cache: true
android: ${{ matrix.platform != 'Android' }}
dotnet: true
haskell: true
large-packages: false # Slowest option (~5min) - disabled for faster builds
docker-images: true
swap-storage: true
- name: Checkout
uses: actions/checkout@v6
with:
submodules: recursive
fetch-depth: 1
fetch-tags: true
- name: Harden Runner
uses: step-security/harden-runner@v2
with:
egress-policy: audit
- name: Build with Docker
uses: ./.github/actions/docker
with:
dockerfile: ${{ matrix.dockerfile }}
fuse: ${{ matrix.fuse }}
docker-token: ${{ secrets.DOCKERHUB_TOKEN }}
- name: Find build artifact
id: artifact
run: |
set +o pipefail # Disable pipefail to handle find | head gracefully
BUILD_DIR="${{ github.workspace }}/build"
echo "Searching for ${{ matrix.artifact_pattern }} in ${BUILD_DIR}"
# Check if build directory exists
if [ ! -d "${BUILD_DIR}" ]; then
echo "::warning::Build directory does not exist: ${BUILD_DIR}"
echo "found=false" >> $GITHUB_OUTPUT
exit 0
fi
# Show build directory structure for debugging (ignore permission errors from Docker-created dirs)
echo "Build directory contents:"
find "${BUILD_DIR}" -maxdepth 4 \( -name "*.apk" -o -name "*.AppImage" \) -type f 2>/dev/null || true
# Find the produced artifact (APK or AppImage)
# Use -quit for efficiency and to avoid broken pipe with head
ARTIFACT=$(find "${BUILD_DIR}" -name "${{ matrix.artifact_pattern }}" -type f -print -quit 2>/dev/null)
if [ -z "$ARTIFACT" ]; then
echo "::warning::No artifact matching ${{ matrix.artifact_pattern }} found"
echo "found=false" >> $GITHUB_OUTPUT
else
echo "Found artifact: $ARTIFACT"
echo "path=$ARTIFACT" >> $GITHUB_OUTPUT
echo "found=true" >> $GITHUB_OUTPUT
fi
- name: Scan artifact for vulnerabilities
if: steps.artifact.outputs.found == 'true'
uses: aquasecurity/[email protected]
with:
scan-type: 'fs'
scan-ref: ${{ steps.artifact.outputs.path }}
format: 'sarif'
output: 'trivy-results.sarif'
trivy-config: '.github/trivy.yaml'
- name: Upload Trivy results to GitHub Security
if: steps.artifact.outputs.found == 'true'
uses: github/codeql-action/upload-sarif@v4
with:
sarif_file: 'trivy-results.sarif'
category: 'trivy-${{ matrix.platform }}'