summaryrefslogtreecommitdiff
path: root/.gitlab-ci.yml
blob: df19c2626c89dcaf5f04f1b2c2dbb56911d68529 (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
# Copyright 2021 The Chromium OS Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.

image: sjg20/bionic-20200526-30jul21

# You can update that image using this repo:
#   https://gitlab.com/zephyr-ec/gitlab-ci-runner/-/tree/main

# Only run on main and coverage branches
workflow:
  rules:
    - if: ($CI_COMMIT_BRANCH == "main" || $CI_COMMIT_BRANCH == "coverage")

# Change pip's cache directory to be inside the project directory since we can
# only cache local items.
variables:
  PIP_CACHE_DIR: "$CI_PROJECT_DIR/.cache/pip"

# Pip's cache doesn't store the python packages
# https://pip.pypa.io/en/stable/reference/pip_install/#caching
#
# If you want to also cache the installed packages, you have to install
# them in a virtualenv and cache it as well.
cache:
  paths:
    - .cache/pip
    - venv/


# The directory structure is:
#
# /zephyr
# /builds/zephyr-ec/ec       EC_DIR
before_script:
  - export MODULES_DIR="$HOME/modules"
  - mkdir -p "${MODULES_DIR}"
  - export ZEPHYR_BASE="$HOME/zephyr"
  - git clone -b chromeos-v2.6 https://chromium.googlesource.com/chromiumos/third_party/zephyr "${ZEPHYR_BASE}26"
  - git clone -b chromeos-main https://chromium.googlesource.com/chromiumos/third_party/zephyr/cmsis "${MODULES_DIR}/cmsis"
  - git clone -b chromeos-main https://chromium.googlesource.com/chromiumos/third_party/zephyr/hal_stm32 "${MODULES_DIR}/hal_stm32"
  - ln -s "$(pwd)" "${MODULES_DIR}/ec"
  - python3 -V  # Print out python version for debugging
  - python3 -m pip install zephyr/zmake --user
  - export BUILD_DIR=build
  - export ZEPHYR_DIR=/zephyr
  - export PATH="$PATH:$HOME/.local/bin"

# Users of this template must set:
# $PROJECT to the project to build in zephyr/projects. E.g. "lazor")
# $VERSION to the Zephyr version to use (e.g. 25 for 2.5, 26 for 2.6)
# $PROJECT_SUBDIR if it is in a subdirectory. E.g. "trogdor/"
.build_template: &build_template
  stage: build
  script:
    - zmake --zephyr-base "${ZEPHYR_BASE}${VERSION}"
      --modules-dir "${MODULES_DIR}" -l DEBUG configure -b
      -B "${BUILD_DIR}/${PROJECT}" -t ${TOOLCHAIN:-zephyr}
      zephyr/projects/${PROJECT_SUBDIR}${PROJECT}
    - ls "${BUILD_DIR}/${PROJECT}" "${BUILD_DIR}/${PROJECT}/output"
  artifacts:
    paths:
      - build/${PROJECT}/output/*
    expire_in: 1 week

delbin:
  variables:
    PROJECT: "delbin"
    PROJECT_SUBDIR: "volteer/"
    VERSION: 26
  <<: *build_template

hayato:
  variables:
    PROJECT: "hayato"
    PROJECT_SUBDIR: "asurada/"
    VERSION: 26
  <<: *build_template

it8xxx2_evb:
  variables:
    PROJECT: "it8xxx2_evb"
    VERSION: 26
  <<: *build_template

kohaku:
  variables:
    PROJECT: "kohaku"
    VERSION: 26
  <<: *build_template

lazor:
  variables:
    PROJECT: "lazor"
    PROJECT_SUBDIR: "trogdor/"
    VERSION: 26
  <<: *build_template

native_posix:
  variables:
    PROJECT: "posix-ec"
    TOOLCHAIN: "host"
    VERSION: 26
  <<: *build_template

volteer:
  variables:
    PROJECT: "volteer"
    PROJECT_SUBDIR: "volteer/"
    VERSION: 26
  <<: *build_template