Skip to content

Mon Aug 31 23:41:02 CST 2026 Very aggressive link time optimization a… #11

Mon Aug 31 23:41:02 CST 2026 Very aggressive link time optimization a…

Mon Aug 31 23:41:02 CST 2026 Very aggressive link time optimization a… #11

name: Linux Automatic Nightly AppImage Build for ARM64
on:
workflow_dispatch:
push:
branches: [main]
pull_request:
branches: [main]
permissions:
contents: write
issues: write
jobs:
build-and-test:
runs-on: ubuntu-24.04-arm
env:
FORCE_JAVASCRIPT_ACTIONS_TO_NODE24: true
steps:
- name: Check out repository
uses: actions/checkout@v5
with:
fetch-depth: 2
- name: Install dependencies
run: |
sudo apt-get update
sudo apt-get install -y \
build-essential \
software-properties-common \
apt-transport-https \
cmake make git gettext patchelf libtool ninja-build
- name: Configure and Build
run: |
set -euo pipefail
mkdir build;
cd build
{ cmake ../src -D CCDB_COMPILE_WITH_IMG="True" -D OPENSSL_TARGET="linux-aarch64" -D OPENSSL_LIBP="lib" -D CCDB_APPIMAGE_BUILD=True -G Ninja \
&& ninja -j 1 static_ccdb; } | tee /tmp/log.txt
- name: Upload log artifact
if: ${{ always() }}
uses: actions/upload-artifact@v6
with:
name: build-log
path: /tmp/log.txt
- name: Open an Issue on Test Failure
if: ${{ always() && failure() && github.event_name != 'pull_request' }}
run: |
gh issue create \
--title "CCDB Linux Build Failed" \
--body "$(cat <<EOF
# One or more steps have failed!
**Log artifact:** \`build-log\` (download it from the workflow run page)
**Workflow run:** ${GITHUB_SERVER_URL}/${GITHUB_REPOSITORY}/actions/runs/${GITHUB_RUN_ID}
EOF
)"
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Pack
run: |
cp build/*.AppImage ccdb
- name: Compute tag
if: ${{ github.event_name != 'pull_request' }}
run: |
TAG=$(git describe --tags --exact-match 2>/dev/null || true)
SHORT=$(git rev-parse --short=8 HEAD)
if [ -n "$TAG" ]; then
echo "GIT_TAG=$TAG" >> "$GITHUB_ENV"
else
echo "GIT_TAG=ccdb.NightlyBuild.AppImage.aarch64.$SHORT" >> "$GITHUB_ENV"
fi
- name: Create and push tag
if: ${{ github.event_name != 'pull_request' }}
run: |
if ! git rev-parse -q --verify "refs/tags/${GIT_TAG}" >/dev/null; then
git tag "${GIT_TAG}"
git push origin "${GIT_TAG}"
fi
- name: Create a GitHub release
if: ${{ github.event_name != 'pull_request' }}
shell: bash
run: |
files=(
ccdb
)
if gh release view "${GIT_TAG}" >/dev/null 2>&1; then
gh release upload "${GIT_TAG}" "${files[@]}" --clobber
else
gh release create "${GIT_TAG}" "${files[@]}" \
--title "${GIT_TAG}" \
--prerelease
fi
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}