summaryrefslogtreecommitdiffhomepage
path: root/cloudbuild.yaml
blob: 2d5b5970eec60537a95f1c5df0a0a313ac30abcb (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
# Copyright 2019 Google LLC
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#     https://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

steps:
  - name: 'bash'
    args: ['bash', '-c', 'mkdir -p upstream/']
  # Clone the upstream repos
  - name: 'gcr.io/cloud-builders/git'
    args: ['clone', 'https://github.com/google/gvisor.git']
    dir: 'upstream'
  - name: 'gcr.io/cloud-builders/git'
    args: ['clone', 'https://gvisor.googlesource.com/community']
    dir: 'upstream'
  # Build runsc
  - name: 'gcr.io/cloud-builders/bazel'
    args:
      - 'build'
      - '--show_timestamps'
      - '--test_output=errors'
      - '--keep_going'
      - '--verbose_failures'
      - 'runsc'
    dir: 'upstream/gvisor'
  # Build the compatibility doc generator tool
  - name: 'golang'
    env: ['GO111MODULE=on']
    args:
      - 'go'
      - 'build'
      - '-o'
      - 'bin/generate-syscall-docs'
      - 'gvisor.dev/website/cmd/generate-syscall-docs'
  # Generate compatibility docs.
  - name: 'bash'
    args:
      - 'bash'
      - '-c'
      - >
        ./upstream/gvisor/bazel-bin/runsc/linux_amd64_pure_stripped/runsc help syscalls -o json |
        ./bin/generate-syscall-docs -out ./content/docs/user_guide/compatibility/
  # Pull npm dependencies for scss and lint-md
  - name: 'gcr.io/cloud-builders/npm'
    args: ['ci']
  # Copy App Engine app files.
  - name: 'gcr.io/gvisor-website/hugo:0.53'
    args: ["make", "app"]
  # Generate the website.
  - name: 'gcr.io/gvisor-website/hugo:0.53'
    env: ['HUGO_ENV=production']
    args: ["hugo"]
  # Test Markdown for issues.
  - name: 'gcr.io/cloud-builders/npm'
    args: ['run', 'lint-md']
  # Test the HTML for issues.
  - name: 'gcr.io/gvisor-website/html-proofer:3.10.2'
    args:
      - "htmlproofer"
      - "--disable-external"
      - "--check-html"
      -  "public/static"
  # Deploy to App Engine only for master branch.
  - name: 'gcr.io/cloud-builders/gcloud'
    entrypoint: 'bash'
    args:
      - '-c'
      - >
        if [[ "$PROJECT_ID" == "gvisor-website" && "$BRANCH_NAME" == "master" ]]; then
        gcloud app deploy public/app.yaml;
        fi
timeout: 1200s