Skip to content
Snippets Groups Projects
.gitlab-ci.yml 2.47 KiB
Newer Older
  • Learn to ignore specific revisions
  • meskio's avatar
    meskio committed
    ---
    stages:
      - build
    
      - push
      - trigger
    
    meskio's avatar
    meskio committed
    
    variables:
      GOPATH: /go
    
      APP_PATH: /go/src/0xacab.org/leap/bitmask-vpn
    
    meskio's avatar
    meskio committed
    
    build_test:
    
      image: registry.0xacab.org/leap/docker/bitmask-vpn:latest
    
    meskio's avatar
    meskio committed
      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
    
    meskio's avatar
    meskio committed
        - make build
    
    meskio's avatar
    meskio committed
      tags:
        - linux
    
      artifacts:
    
    meskio's avatar
    meskio committed
        paths:
    
          - 'bitmask-vpn'
          - 'bitmask-helper'
          - 'bitmask-connect'
    
    meskio's avatar
    meskio committed
        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
    
    
    
      image: registry.0xacab.org/leap/docker/buster_amd64:latest
    
      stage: trigger
    
    Kali Kaneko's avatar
    Kali Kaneko committed
      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"
    
      image: registry.0xacab.org/leap/docker/bitmask-vpn:latest
    
      stage: vendor
      script:
    
        #- 'PROVIDERS="riseup calyx" make build_all_providers'
        - 'PROVIDERS="riseup" make build_all_providers'
    
    Kali Kaneko's avatar
    Kali Kaneko committed
      artifacts:
        name: installers-$CI_COMMIT_REF_NAME
        paths:
    
          - 'deploy/*.snap'
    
    Kali Kaneko's avatar
    Kali Kaneko committed
          - 'deploy/RiseupVPN-*.exe'
          - 'deploy/RiseupVPN-*.pkg'
    
          - 'deploy/riseup-vpn_*.deb'
          - 'deploy/CalyxVPN-*.exe'
          - 'deploy/CalyxVPN-*.pkg'
          - 'deploy/calyx-vpn_*.deb'
    
    Kali Kaneko's avatar
    Kali Kaneko committed
        expire_in: 1 month