aboutsummaryrefslogtreecommitdiff
path: root/.travis.yml
blob: 6d0ae57ef8f1510a7d6ed7f1b76a25018a350008 (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
language: go
sudo: false
dist: trusty
go: 1.9.x

notifications:
  email: false

stages:
  - name: build
    if: type = push
  - name: presubmits
    if: type = pr OR branch = master OR tag IS present
  - name: deploy
    if: type = push AND tag IS present

jobs:
  include:
    - stage: build
      install: skip
      script: make

    - stage: presubmits
      env: Generate, Format, and Lint
      install:
        - wget -q https://github.com/golang/dep/releases/download/v0.4.1/dep-linux-amd64 -O /tmp/dep
        - chmod a+x /tmp/dep
        - make tools
      script:
        - /tmp/dep status
        - make gen
        - bin/files-changed proto
        - make format
        - bin/files-changed format
        - make lint

    - &build
      env: Build and Unit Tests
      install: skip
      script:
        - go build github.com/google/fscrypt/cmd/fscrypt
        - make
    - <<: *build
      go: 1.8.x

    - env: Integration Tests
      sudo: required
      addons:
        apt:
          sources:
            - sourceline: 'deb http://en.archive.ubuntu.com/ubuntu/ artful main universe'
          packages:
            - e2fsprogs
      install:
        - go get -u github.com/mattn/goveralls
        - make test-setup
      script:
        - make coverage.out
        - goveralls -coverprofile=coverage.out -service=travis-ci

    - stage: deploy
      env: Release Binaries
      install: skip
      script: skip
      before_deploy: make
      deploy:
        - provider: releases
          api_key:
            secure: TODO
          file:
            - bin/fscrypt
            - bin/pam_fscrypt.so
          skip_cleanup: true
          on:
            repo: google/master
            branch: master
            tags: true