Skip to content

Debusine Daily

Debusine Daily #104

# Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries.
# SPDX-License-Identifier: BSD-3-Clause-Clear
# SEE README.debusine.md BEFORE CHANGING THIS FILE
name: Debusine Daily
on:
schedule:
- cron: '0 0 * * *'
workflow_dispatch:
jobs:
# For scheduled runs, determine which target branches exist
check-branches:
name: Check branches
runs-on: ubuntu-latest
outputs:
matrix: ${{ steps.set-matrix.outputs.matrix }}
steps:
- uses: actions/checkout@v6
with:
fetch-depth: 0
- id: set-matrix
name: Set matrix
env:
# Unset Actions variables expand to an empty string, so only "true" disables.
DEBUSINE_WORKFLOWS_DISABLED: ${{ vars.DEBUSINE_WORKFLOWS_DISABLED }}
run: |
if [ "$DEBUSINE_WORKFLOWS_DISABLED" = "true" ]; then
echo 'matrix=[]' >> "$GITHUB_OUTPUT"
echo 'Debusine workflows are disabled for this repository.'
exit 0
fi
# Define candidate branches
candidates='["qli/debian/latest", "qli/debian/trixie", "qli-staging/debian/latest", "qli-staging/debian/trixie", "qcom/debian/latest", "qcom/debian/trixie"]'
# Filter to branches that exist
existing=()
for branch in $(echo "$candidates" | jq -r '.[]'); do
if git rev-parse --verify "origin/$branch" >/dev/null 2>&1; then
existing+=("\"$branch\"")
fi
done
# Create JSON array
matrix="[$(IFS=,; echo "${existing[*]}")]"
echo "matrix=$matrix" >> "$GITHUB_OUTPUT"
echo "Existing branches: $matrix"
# For scheduled runs, call the workflow once per existing branch
debusine-scheduled:
name: Debusine (${{ matrix.target_branch }})
needs: check-branches
if: ${{ vars.DEBUSINE_WORKFLOWS_DISABLED != 'true' }}
strategy:
fail-fast: false
matrix:
target_branch: ${{ fromJson(needs.check-branches.outputs.matrix) }}
uses: qualcomm-linux/debusine-action/.github/workflows/debusine.yml@main
with:
target_branch: ${{ matrix.target_branch }}
source_ref: refs/heads/${{ matrix.target_branch }}
release: false
debusine-action-ref: main
debusine-parent-workspace: ${{ vars.DEBUSINE_PARENT_WORKSPACE || 'qli-ci' }}
job_index: ${{ strategy.job-index }}
permissions:
contents: write
deployments: write
packages: read
secrets:
DEBUSINE_USER: ${{ secrets.DEBUSINE_USER }}
DEBUSINE_TOKEN: ${{ secrets.DEBUSINE_TOKEN }}
DEBUSINE_RELEASE_TOKEN: ${{ secrets.DEBUSINE_RELEASE_TOKEN }}