krz/keycask

Password manager: Swift core library, CLI for macOS/Linux/Windows, iOS/macOS app. cli password-manager swift

.gitbay/ci.yml

52 lines · 2736 bytes

 1# The runner is Debian 13, root, no docker. apt state does not survive between
 2# builds; $HOME does, so the toolchain tarball is fetched and verified once.
 3# swift-keys.asc is https://www.swift.org/keys/all-keys.asc, committed because the
 4# runner cannot fetch it intact.
 5# Each step runs in its own `sh -c`, so the install block is repeated per job.
 6jobs:
 7  build:
 8    steps:
 9      - |
10        set -eu
11        export DEBIAN_FRONTEND=noninteractive
12        apt-get -qq update >/dev/null
13        apt-get -qq install -y binutils-gold curl gpg libicu-dev libcurl4-openssl-dev libedit-dev libsqlite3-dev libncurses-dev libpython3-dev libxml2-dev pkg-config uuid-dev tzdata git gcc libstdc++-14-dev >/dev/null
14        SWIFT="$HOME/swift-6.4.0-RELEASE-debian13"
15        if [ ! -x "$SWIFT/usr/bin/swift" ]; then
16          base="https://download.swift.org/swift-6.4.0-release/debian13/swift-6.4.0-RELEASE/swift-6.4.0-RELEASE-debian13.tar.gz"
17          work="$(mktemp -d)"
18          curl -fsSL "$base" -o "$work/swift.tar.gz" "$base.sig" -o "$work/swift.tar.gz.sig"
19          export GNUPGHOME="$work/gnupg"; mkdir -m 700 "$GNUPGHOME"
20          gpg --batch --quiet --import .gitbay/swift-keys.asc
21          gpg --batch --verify "$work/swift.tar.gz.sig" "$work/swift.tar.gz"
22          tar -xzf "$work/swift.tar.gz" -C "$work"
23          mv "$work/swift-6.4.0-RELEASE-debian13" "$SWIFT" || true
24          rm -rf "$work"
25        fi
26        export PATH="$SWIFT/usr/bin:$PATH"
27        swift --version
28        swift format lint --strict --recursive Sources Tests Package.swift
29        swift build
30  test:
31    steps:
32      - |
33        set -eu
34        export DEBIAN_FRONTEND=noninteractive
35        apt-get -qq update >/dev/null
36        apt-get -qq install -y binutils-gold curl gpg libicu-dev libcurl4-openssl-dev libedit-dev libsqlite3-dev libncurses-dev libpython3-dev libxml2-dev pkg-config uuid-dev tzdata git gcc libstdc++-14-dev >/dev/null
37        SWIFT="$HOME/swift-6.4.0-RELEASE-debian13"
38        if [ ! -x "$SWIFT/usr/bin/swift" ]; then
39          base="https://download.swift.org/swift-6.4.0-release/debian13/swift-6.4.0-RELEASE/swift-6.4.0-RELEASE-debian13.tar.gz"
40          work="$(mktemp -d)"
41          curl -fsSL "$base" -o "$work/swift.tar.gz" "$base.sig" -o "$work/swift.tar.gz.sig"
42          export GNUPGHOME="$work/gnupg"; mkdir -m 700 "$GNUPGHOME"
43          gpg --batch --quiet --import .gitbay/swift-keys.asc
44          gpg --batch --verify "$work/swift.tar.gz.sig" "$work/swift.tar.gz"
45          tar -xzf "$work/swift.tar.gz" -C "$work"
46          mv "$work/swift-6.4.0-RELEASE-debian13" "$SWIFT" || true
47          rm -rf "$work"
48        fi
49        export PATH="$SWIFT/usr/bin:$PATH"
50        swift test
51    paths-ignore:
52      - docs/**