summaryrefslogtreecommitdiff
path: root/.gitlab-ci.yml
blob: 3b8ab4d66578dded5cc03126ffd1dfeaecb2cdff (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
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
---
stages:
  - build
  - push
  - trigger
  - vendor

variables:
  GOPATH: /go
  APP_PATH: /go/src/0xacab.org/leap/bitmask-vpn

build_test:
  image: registry.0xacab.org/leap/docker/bitmask-vpn:latest
  stage: build
  script:
    - mkdir -p /go/src/0xacab.org/leap/
    - ln -s "$(pwd)" ${APP_PATH}
    - cd ${APP_PATH}
    - make get
    - make test
    - make build_bitmaskd
    - make build
  tags:
    - linux
  artifacts:
    paths:
      - 'bitmask-vpn'
      - 'bitmask-helper'
      - 'bitmask-connect'
    expire_in: 1 month

# win_installer:
#  image: 0xacab.org:4567/leap/docker/bitmask-vpn:latest
#  stage: build
#  script:
#    - mkdir -p /go/src/0xacab.org/leap/
#    - ln -s "$(pwd)" ${APP_PATH}
#    - cd ${APP_PATH}
# 
#    # we need to manually patch w32 until they merge #81
#    - mkdir -p /go/src/github.com/AllenDang/
#    - cd /go/src/github.com/AllenDang/
#    - git clone https://github.com/AllenDang/w32
#    - cd w32
#    - curl https://downloads.leap.se/thirdparty/w32.patch | patch -p1 -N
# 
#    - cd ${APP_PATH}
# 
#    - git clone https://0xacab.org/leap/riseup_vpn
#    - cd riseup_vpn
#    - make openvpn_cross_win
#    - make build_cross_win
#    - mv dist/RiseupVPN-*.exe ..
#  tags:
#    - linux
#  artifacts:
#    name: installer_win_$CI_COMMIT_REF_NAME
#    paths:
#      - RiseupVPN-*.exe
#    expire_in: 1 month

snap:
 image: registry.0xacab.org/leap/docker/bitmask-vpn:latest
 stage: build
 script:
   - mkdir -p /go/src/0xacab.org/leap/
   - ln -s "$(pwd)" ${APP_PATH}

   - git clone https://0xacab.org/leap/riseup_vpn /riseup_vpn
   - cd /riseup_vpn
   - sed -i 's/https:\/\/0xacab.org\/leap\/bitmask-vpn.*$/\/go\/src\/0xacab.org\/leap\/bitmask-vpn/' snap/snapcraft.yaml
   - sed -i 's/git clone.*$//' snap/version.sh
   - sed -i 's/git -C bitmask-vpn/git -C \/go\/src\/0xacab.org\/leap\/bitmask-vpn/' snap/version.sh
   - snapcraft snap
   - mv riseup-vpn*.snap ${APP_PATH}
 tags:
   - linux
 artifacts:
   name: snap_$CI_COMMIT_REF_NAME
   paths:
     - riseup-vpn*.snap
   expire_in: 1 month

# osx_installer:
#   stage: build
#   allow_failure: true
#   variables:
#       GOPATH: /tmp/go/
#       APP_PATH: /tmp/go/src/0xacab.org/leap/bitmask-vpn
#   script:
#     - git clone https://0xacab.org/leap/riseup_vpn
#     - cd riseup_vpn
#     - make openvpn_osx
#     - make build_osx
#   tags:
#     - yosemite
#     - osx
#   artifacts:
#     name: installer_osx_$CI_COMMIT_REF_NAME
#     paths:
#       - riseup_vpn/dist/RiseupVPN-*.pkg
#   expire_in: 1 month


branded_push:
  image: registry.0xacab.org/leap/docker/bitmask-vpn:latest
  stage: push
  only:
      - master
  script:
    # install the command-line openssh client to manage private keys
    - apt install -y openssh-client
    # activate the ssh-agent
    - eval $(ssh-agent -s)
    # load the private key, which is accessed vi a gitlab CI secret environment variable
    # We're using tr to fix line endings which makes ed25519 keys work
    # without extra base64 encoding.
    - ssh-add <(echo "$RISEUP_VPN_PACKAGE_SSH_KEY")
    - mkdir -p ~/.ssh
    # ensure that ssh will trust a new host, instead of asking
    - echo -e "Host *\n\tStrictHostKeyChecking no\n\n" > ~/.ssh/config
    # we also need to configure name and email for git user
    - git config user.name "Gitlab CI"
    - git config user.email "gitlabci@0xacab.org"
    # Add the remote repository and push to it - sometimes it already exists, and it causes the pipeline to fail, so we only add if its not already there
    - git remote -v |grep -q riseup-vpn || git remote add riseup-vpn git@0xacab.org:leap/riseup-vpn_package.git
    - git push --force riseup-vpn HEAD:incoming


trigger_deb:
  image: registry.0xacab.org/leap/docker/buster_amd64:latest
  stage: trigger
  script:
    - echo "Triggering CI pipeline on https://0xacab.org/leap/riseup-vpn_package/pipelines"
    - "curl -X POST -F token=$RISEUP_VPN_DEB_TRIGGER_TOKEN -F ref=master https://0xacab.org/api/v4/projects/1916/trigger/pipeline"

vendorize:
  image: registry.0xacab.org/leap/docker/bitmask-vpn:latest
  stage: vendor
  script:
    - 'PROVIDERS="riseup calyx" make build_all_providers'
  artifacts:
    name: installers-$CI_COMMIT_REF_NAME
    paths:
      - 'deploy/RiseupVPN-*.exe'
      - 'deploy/RiseupVPN-*.pkg'
      - 'deploy/riseup-vpn_*.deb'
      - 'deploy/CalyxVPN-*.exe'
      - 'deploy/CalyxVPN-*.pkg'
      - 'deploy/calyx-vpn_*.deb'
    expire_in: 1 month