krz/hutch
an ios client for sourcehut
clone: git clone https://gitbay.org/krz/hutch.git
v2.15.1: builds/swift-ci.yml · raw
1image: ubuntu/lts
2
3packages:
4 - ca-certificates
5 - curl
6 - git
7 - gnupg2
8 - libcurl4-openssl-dev
9 - libncurses6
10 - libpython3-dev
11 - libsqlite3-0
12 - libxml2-dev
13 - libz3-dev
14 - pkg-config
15 - zlib1g-dev
16
17sources:
18 - https://git.sr.ht/~ccleberg/Hutch
19
20environment:
21 SWIFT_VERSION: 6.2.4
22 SWIFT_DIR: ubuntu2404
23 SWIFT_LABEL: ubuntu24.04
24 SWIFT_BASE: swift-6.2.4-RELEASE-ubuntu24.04
25 SWIFT_HOME: /home/build/.local/swift/swift-6.2.4-RELEASE-ubuntu24.04
26
27tasks:
28 - install-swift: |
29 set -euo pipefail
30 cd /tmp
31
32 SWIFT_URL="https://download.swift.org/swift-${SWIFT_VERSION}-release/${SWIFT_DIR}/swift-${SWIFT_VERSION}-RELEASE/${SWIFT_BASE}.tar.gz"
33 SIG_URL="${SWIFT_URL}.sig"
34
35 curl -fL -o swift.tar.gz "$SWIFT_URL"
36 curl -fL -o swift.tar.gz.sig "$SIG_URL"
37
38 # Import Swift 6.x release signing key
39 gpg --batch --keyserver hkp://keyserver.ubuntu.com --recv-keys \
40 '52BB7E3DE28A71BE22EC05FFEF80A866B47A981F'
41
42 gpg --verify swift.tar.gz.sig swift.tar.gz
43
44 mkdir -p "$HOME/.local/swift"
45 tar -xzf swift.tar.gz -C "$HOME/.local/swift"
46
47 export PATH="${SWIFT_HOME}/usr/bin:$PATH"
48 swift --version
49
50 - security-secrets: |
51 set -euo pipefail
52
53 VERSION=8.24.2
54 ARCHIVE="gitleaks_${VERSION}_linux_x64.tar.gz"
55 URL="https://github.com/gitleaks/gitleaks/releases/download/v${VERSION}/${ARCHIVE}"
56
57 mkdir -p "$HOME/.local/bin"
58
59 cd /tmp
60 curl -fL -o gitleaks.tar.gz "$URL"
61 tar -xzf gitleaks.tar.gz
62 install -m 0755 gitleaks "$HOME/.local/bin/gitleaks"
63
64 export PATH="$HOME/.local/bin:$PATH"
65
66 cd "$HOME/Hutch"
67 gitleaks git --redact --verbose .
68
69 - repo-structure-check: |
70 set -euo pipefail
71 cd "$HOME/Hutch"
72
73 test -f "Hutch.xcodeproj/project.pbxproj"
74 test -d "website"
75 test -f "README.md"
76
77 - xcode-project-check: |
78 set -euo pipefail
79 cd "$HOME/Hutch"
80
81 grep -q "PBXProject" Hutch.xcodeproj/project.pbxproj