summarylogtreecommitdiffstats
path: root/.gitlab-ci.yml
blob: 9e64864119318e6cb4b67d14804aeed68923c2fe (plain)
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
stages:
  - package
  - deploy

update_pkgbuild:
  stage: package
  image: python:latest
  script:
    - pip install -r requirements.txt
    - ./render_pkgbuild.py
  artifacts:
    paths:
      - ./metadata.json
      - ./PKGBUILD
    expire_in: 1 day

build_package:
  stage: package
  needs: [update_pkgbuild]
  image: archlinux:latest
  script:
    - pacman -Syu --noconfirm base-devel sudo
    - useradd --create-home builder
    - echo 'builder ALL=(ALL) ALL' >> /etc/sudoers.d/builder
    - echo 'Defaults:builder !authenticate' >> /etc/sudoers.d/builder
    - sudo -Hu builder makepkg --printsrcinfo > .SRCINFO
    - sudo -Hu builder makepkg --noconfirm --syncdeps --clean
  artifacts:
    paths:
      - ./.SRCINFO
      - ./fleet-orbit-*.pkg.tar.zst
    expire_in: 1 day

test_package:
  stage: package
  needs: [build_package]
  image: archlinux:latest
  script:
    - pacman -Syu --noconfirm
    - pacman -U --noconfirm fleet-orbit-*.pkg.tar.zst
    - fleet-orbit version

push_package:
  stage: deploy
  image: alpine:latest
  rules:
    - if: $PUSH_PACKAGE == "true"
  script:
    - apk add git openssh-client
    - eval $(ssh-agent -s)
    - mkdir -p ~/.ssh
    - chmod 700 ~/.ssh
    - ssh-keyscan gitlab.com aur.archlinux.com >> ~/.ssh/known_hosts
    - echo "${SSH_PRIVATE_KEY}" | tr -d '\r' | ssh-add -
    - git clone git@gitlab.com:nlr/fleet-orbit-aur.git
    - cp PKGBUILD .SRCINFO metadata.json fleet-orbit-aur/
    - cd fleet-orbit-aur/
    - git config user.name "[BOT] Gilbert Gilb's"
    - git config user.email "gilbsgilbert@gmail.com"
    - git add .
    - |
        if ! git diff --cached --exit-code; then
          pkgver="$(grep -E '^pkgver=' PKGBUILD | cut -d'=' -f2)"
          git commit -m "Update to ${pkgver}."
        fi
    - git push origin HEAD:main
    - git remote add aur ssh://aur@aur.archlinux.org/fleet-orbit.git
    - git push aur HEAD:master