summaryrefslogtreecommitdiff
path: root/builds/swift-ci.yml
blob: d2449b53807733c93596acb1a3079086ad8d0c2b (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
image: ubuntu/lts

packages:
  - ca-certificates
  - curl
  - git
  - gnupg2
  - libcurl4-openssl-dev
  - libncurses6
  - libpython3-dev
  - libsqlite3-0
  - libxml2-dev
  - libz3-dev
  - pkg-config
  - zlib1g-dev

sources:
  - https://git.sr.ht/~ccleberg/Hutch

environment:
  SWIFT_VERSION: 6.2.4
  SWIFT_DIR: ubuntu2404
  SWIFT_LABEL: ubuntu24.04
  SWIFT_BASE: swift-6.2.4-RELEASE-ubuntu24.04
  SWIFT_HOME: /home/build/.local/swift/swift-6.2.4-RELEASE-ubuntu24.04

tasks:
  - install-swift: |
      set -euo pipefail
      cd /tmp

      SWIFT_URL="https://download.swift.org/swift-${SWIFT_VERSION}-release/${SWIFT_DIR}/swift-${SWIFT_VERSION}-RELEASE/${SWIFT_BASE}.tar.gz"
      SIG_URL="${SWIFT_URL}.sig"

      curl -fL -o swift.tar.gz "$SWIFT_URL"
      curl -fL -o swift.tar.gz.sig "$SIG_URL"

      # Import Swift 6.x release signing key
      gpg --batch --keyserver hkp://keyserver.ubuntu.com --recv-keys \
        '52BB7E3DE28A71BE22EC05FFEF80A866B47A981F'

      gpg --verify swift.tar.gz.sig swift.tar.gz

      mkdir -p "$HOME/.local/swift"
      tar -xzf swift.tar.gz -C "$HOME/.local/swift"

      export PATH="${SWIFT_HOME}/usr/bin:$PATH"
      swift --version

  - security-secrets: |
      set -euo pipefail

      VERSION=8.24.2
      ARCHIVE="gitleaks_${VERSION}_linux_x64.tar.gz"
      URL="https://github.com/gitleaks/gitleaks/releases/download/v${VERSION}/${ARCHIVE}"

      mkdir -p "$HOME/.local/bin"

      cd /tmp
      curl -fL -o gitleaks.tar.gz "$URL"
      tar -xzf gitleaks.tar.gz
      install -m 0755 gitleaks "$HOME/.local/bin/gitleaks"

      export PATH="$HOME/.local/bin:$PATH"

      cd "$HOME/Hutch"
      gitleaks git --redact --verbose .

  - repo-structure-check: |
      set -euo pipefail
      cd "$HOME/Hutch"

      test -f "Hutch.xcodeproj/project.pbxproj"
      test -f "README.md"

  - xcode-project-check: |
      set -euo pipefail
      cd "$HOME/Hutch"

      grep -q "PBXProject" Hutch.xcodeproj/project.pbxproj