Skip to content

Add static link packages #17

Add static link packages

Add static link packages #17

name: Build static deb arm64 packages and put them in zip files
on:
push:
branches:
- main
workflow_dispatch:
pull_request:
jobs:
build:
runs-on: ubuntu-24.04
strategy:
fail-fast: false
matrix:
architecture: [aarch64-linux-gnu]
build_type: [RelWithDebInfo, MinSizeRel]
steps:
- uses: actions/checkout@v4
- name: Set up QEMU
uses: docker/setup-qemu-action@v3
- name: Cache Podman storage
uses: actions/cache@v4
with:
path: ~/.local/share/containers/
key: ${{ runner.os }}-${{ matrix.architecture }}-podman-${{ hashFiles('misc/staticbuildtestcontainer/*') }}
restore-keys: |
${{ runner.os }}-${{ matrix.architecture }}-podman-
- name: Build container for aarch64-linux-gnu
if: matrix.architecture == 'aarch64-linux-gnu'
run: |
podman build --from=docker.io/arm64v8/ubuntu:22.04 --arch=arm64 misc/staticbuildtestcontainer -t container
- name: Run build in container
shell: bash
run: |
# this will link static if no shared alternative lib is available
podman run -v $PWD/.:/aws-greengrass-lite --replace --name ggl container:latest bash -c "\
cd /aws-greengrass-lite && \
rm -rf build/ && \
cmake -B build \
-DGGL_LOG_LEVEL=DEBUG \
-DCMAKE_BUILD_TYPE=${{ matrix.build_type }} \
-DCMAKE_FIND_DEBUG_MODE=ON \
-DGGL_SYSTEMD_SYSTEM_USER=ggcore \
-DGGL_SYSTEMD_SYSTEM_GROUP=ggcore \
-DGGL_SYSTEMD_SYSTEM_DIR=/lib/systemd/system \
-DCMAKE_INSTALL_PREFIX=/usr && \
make -C build -j$(nproc) && \
cd build && cpack -v -G DEB && cd - \
"
sudo chown -R $UID:$(id -g) ~/.local/share/containers
- name: Save package
run: |
mkdir ${{ github.workspace }}/zipfile/
cp ${{ github.workspace }}/build/*.deb ${{ github.workspace }}/zipfile/
- name: Generate readme / install file
run: |
cat ${{ github.workspace }}/.github/workflows/static-packaging/readme.template.txt >> ${{ github.workspace }}/zipfile/readme.txt
cp ${{ github.workspace }}/.github/workflows/packaging/install-greengrass-lite.sh ${{ github.workspace }}/zipfile/
sed -i 's|{{ VERSION_LINK }}|${{ github.server_url }}/${{ github.repository }}/commit/${{ github.sha }}|g' ${{ github.workspace }}/zipfile/readme.txt
sed -i 's| {{ UBUNTU_VERSION }}|22.04|g' ${{ github.workspace }}/zipfile/install-greengrass-lite.sh
cat ${{ github.workspace }}/LICENSE >> ${{ github.workspace }}/zipfile/readme.txt
- name: md5sums
run: |
md5sum ${{ github.workspace }}/zipfile/*
- name: Save package
uses: actions/upload-artifact@v4
with:
name:
aws-greengrass-lite-ubuntu-${{ matrix.architecture || 'x86-64'}}_${{
matrix.build_type }}-static
path: |
${{ github.workspace }}/zipfile/*
retention-days: 1
- name:
Save arm64 package without build type - default package to download
if:
matrix.build_type == 'MinSizeRel' && matrix.architecture ==
'aarch64-linux-gnu'
uses: actions/upload-artifact@v4
with:
name: aws-greengrass-lite-ubuntu-arm64-static
path: |
${{ github.workspace }}/zipfile/*
retention-days: 1