|
| 1 | +name: openziti |
| 2 | +variant: alpine |
| 3 | +shell: /toolchain/bin/bash |
| 4 | +install: |
| 5 | + - unzip |
| 6 | + - zip |
| 7 | + - ninja-build |
| 8 | + - ninja |
| 9 | + - zlib-static |
| 10 | +dependencies: |
| 11 | + - image: "ghcr.io/siderolabs/tools:v1.7.0-4-gc844dc3" |
| 12 | +steps: |
| 13 | + - sources: |
| 14 | + - url: https://github.com/openziti/ziti-tunnel-sdk-c/archive/refs/tags/{{ .OPENZITI_TUNNELER_VERSION }}.tar.gz |
| 15 | + destination: edge-tunnel-source.tar.gz |
| 16 | + sha256: d455672bf3b6ff28fd0ff864f868f7d6e3de99e6c666a120227fa9dab2d91f78 |
| 17 | + sha512: 5aeb05347381124e9d75693f12e0d234499a8c6482d322019576a24c622d986d43f159454a43c844623f171a456062a5e1afffcee7f7cbb03740216dbd3bb74c |
| 18 | + env: |
| 19 | + VCPKG_ROOT: /vcpkg |
| 20 | + VCPKG_FORCE_SYSTEM_BINARIES: 1 |
| 21 | + CC: /toolchain/bin/gcc |
| 22 | + CXX: /toolchain/bin/g++ |
| 23 | + prepare: |
| 24 | + - | |
| 25 | + # vcpkg depends on git as a delivery tool |
| 26 | + # if to download .tar.gz from releases it would fail saying it cannot retrieve versions/baseline.json version using git show |
| 27 | + # tried my best to find any CMAKE variable within vcpkg which disables this behaviour |
| 28 | + # we fetch here commit to which tag 2024.07.12 is assigned |
| 29 | + git clone https://github.com/microsoft/vcpkg.git /vcpkg |
| 30 | + git --git-dir=/vcpkg/.git --work-tree=/vcpkg checkout 1de2026f28ead93ff1773e6e680387643e914ea1 |
| 31 | +
|
| 32 | + - | |
| 33 | + sed -i 's#$VERSION#{{ .VERSION }}#' /pkg/manifest.yaml |
| 34 | +
|
| 35 | + - | |
| 36 | + mkdir -p /vcpkg-git /vcpkg /ziti-tunnel-sdk-c/build |
| 37 | + tar -xzvf edge-tunnel-source.tar.gz --strip-components=1 -C /ziti-tunnel-sdk-c |
| 38 | +
|
| 39 | + build: |
| 40 | + - | |
| 41 | + export PATH=${PATH}:/toolchain/bin |
| 42 | + /vcpkg/bootstrap-vcpkg.sh |
| 43 | +
|
| 44 | + - | |
| 45 | + export PATH=${PATH}:/toolchain/bin |
| 46 | + PRESET="ci-linux-x64" |
| 47 | + if [[ "$(uname -m)" == "arm64" || "$(uname -m)" == "aarch64" ]]; then |
| 48 | + PRESET="ci-linux-arm64" |
| 49 | + ln -s /toolchain/bin/g++ /toolchain/bin/aarch64-linux-gnu-g++ |
| 50 | + ln -s /toolchain/bin/gcc /toolchain/bin/aarch64-linux-gnu-gcc |
| 51 | + fi |
| 52 | + cmake -DBUILD_SHARED_LIBS=OFF -DCMAKE_EXE_LINKER_FLAGS="-static" -DDISABLE_SEMVER_VERIFICATION=ON -DDISABLE_LIBSYSTEMD_FEATURE=ON -DCMAKE_MAKE_PROGRAM=/usr/bin/ninja --preset $PRESET -S /ziti-tunnel-sdk-c -B /ziti-tunnel-sdk-c/build |
| 53 | + - | |
| 54 | + cmake --build /ziti-tunnel-sdk-c/build --config Release |
| 55 | + install: |
| 56 | + - | |
| 57 | + mkdir -p /rootfs/usr/local/lib/containers/openziti/usr/local/bin/ |
| 58 | + mv /ziti-tunnel-sdk-c/build/programs/ziti-edge-tunnel/Release/ziti-edge-tunnel /rootfs/usr/local/lib/containers/openziti/usr/local/bin/ |
| 59 | +finalize: |
| 60 | + - from: /rootfs |
| 61 | + to: /rootfs |
| 62 | + - from: /pkg/manifest.yaml |
| 63 | + to: / |
| 64 | + - from: /pkg/openziti.yaml |
| 65 | + to: /rootfs/usr/local/etc/containers/ |
0 commit comments