File: ci.yml

package info (click to toggle)
protobuild 0.3.0-2
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 284 kB
  • sloc: makefile: 4
file content (152 lines) | stat: -rw-r--r-- 4,441 bytes parent folder | download
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
152
name: CI

on:
  push:
    branches: [ main ]
  pull_request:
    branches: [ main ]

jobs:
  check:
    name: Project checks
    runs-on: ubuntu-20.04
    timeout-minutes: 5
    steps:
    - name: Check out code
      uses: actions/checkout@v2
      with:
        path: src/github.com/containerd/protobuild
        fetch-depth: 25

    - name: Project checks
      uses: containerd/project-checks@v1
      with:
        working-directory: src/github.com/containerd/protobuild

  test:
    name: Test
    strategy:
      matrix:
        os: [ ubuntu-20.04, windows-2022 ]
      fail-fast: false
    runs-on: ${{ matrix.os }}
    timeout-minutes: 5
    steps:
    - name: Check out code
      uses: actions/checkout@v2
      with:
        path: src/github.com/containerd/protobuild
        fetch-depth: 25

    - name: Setup environment
      shell: bash
      run: |
        echo "GOPATH=${{ github.workspace }}" >> $GITHUB_ENV
        echo "${{ github.workspace }}/bin" >> $GITHUB_PATH

    - name: Check out code
      uses: actions/checkout@v2
      with:
        path: src/github.com/containerd/protobuild

    - name: Test
      working-directory: src/github.com/containerd/protobuild
      run: |
        go test

  v1:
    name: Run with protoc-gen-go v1.3.5
    runs-on: ubuntu-20.04
    timeout-minutes: 5
    steps:

    - name: Set up Go
      uses: actions/setup-go@v2
      with:
        go-version: 1.16.x
      id: go

    - name: Setup environment
      shell: bash
      run: |
        echo "GOPATH=${{ github.workspace }}" >> $GITHUB_ENV
        echo "${{ github.workspace }}/bin" >> $GITHUB_PATH

    - name: Check out code
      uses: actions/checkout@v2
      with:
        path: src/github.com/containerd/protobuild

    - name: Build
      working-directory: src/github.com/containerd/protobuild
      run: |
        go build .

    - name: Install protoc
      run: |
        curl -LO https://github.com/protocolbuffers/protobuf/releases/download/v3.5.0/protoc-3.5.0-linux-x86_64.zip
        sudo unzip -x protoc-3.5.0-linux-x86_64.zip -d /usr/local
        sudo chmod -R go+rX /usr/local/include
        sudo chmod go+x /usr/local/bin/protoc

    # Both google.golang.org/protobuf/cmd/protoc-gen-go and github.com/golang/protobuf/protoc-gen-go > 1.4.0 don't
    # support import_path. So this step has to use 1.3.x here.
    - name: Install protoc-gen-go
      run: |
        go install github.com/golang/protobuf/protoc-gen-go@v1.3.5

    - name: Run protobuild to see all committed auto-generated files can be generated as is
      working-directory: src/github.com/containerd/protobuild
      run: |
        rm examples/foo/*.pb.* examples/bar/*.pb.* examples/nogrpc/*.pb.*
        export PATH=$(go env GOBIN):$PATH
        ./protobuild github.com/containerd/protobuild/examples/bar github.com/containerd/protobuild/examples/foo github.com/containerd/protobuild/examples/nogrpc
        git diff --exit-code

  v2:
    name: Run with protoc-gen-go v1.26
    runs-on: ubuntu-20.04
    timeout-minutes: 5
    steps:

    - name: Set up Go
      uses: actions/setup-go@v2
      with:
        go-version: 1.16.x
      id: go

    - name: Setup environment
      shell: bash
      run: |
        echo "GOPATH=${{ github.workspace }}" >> $GITHUB_ENV
        echo "${{ github.workspace }}/bin" >> $GITHUB_PATH

    - name: Check out code
      uses: actions/checkout@v2
      with:
        path: src/github.com/containerd/protobuild

    - name: Build
      working-directory: src/github.com/containerd/protobuild
      run: |
        go build .

    - name: Install protoc
      run: |
        curl -LO https://github.com/protocolbuffers/protobuf/releases/download/v3.18.1/protoc-3.18.1-linux-x86_64.zip
        sudo unzip -x protoc-3.18.1-linux-x86_64.zip -d /usr/local
        sudo chmod -R go+rX /usr/local/include
        sudo chmod go+x /usr/local/bin/protoc

    - name: Install protoc-gen-go and protoc-gen-go-grpc
      run: |
        go install google.golang.org/protobuf/cmd/protoc-gen-go@v1.26
        go install google.golang.org/grpc/cmd/protoc-gen-go-grpc@v1.1

    - name: Run protobuild to see all committed auto-generated files can be generated as is
      working-directory: src/github.com/containerd/protobuild
      run: |
        rm examples/v2/*.pb.*
        export PATH=$(go env GOBIN):$PATH
        ./protobuild -f v2.toml github.com/containerd/protobuild/examples/v2
        git diff --exit-code