-
Notifications
You must be signed in to change notification settings - Fork 14
Expand file tree
/
Copy path.travis.yml
More file actions
94 lines (74 loc) · 2.82 KB
/
Copy path.travis.yml
File metadata and controls
94 lines (74 loc) · 2.82 KB
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
# SPDX-FileCopyrightText: 2025 aesc silicon
#
# SPDX-License-Identifier: CERN-OHL-W-2.0
language: generic
os: linux
dist: noble
# Only run on pull requests to main branch
branches:
only:
- main
# Set timeout to 180 minutes
timeout: 10800
# Conditional logic for PRs vs Cron
if: type IN (pull_request, cron)
cache:
directories:
- $HOME/.podman-cache
install:
# Install Podman
- sudo apt-get update
- sudo apt-get install -y podman uidmap slirp4netns
# Disable color
- git config --global color.ui false
# Install other dependencies
- sudo snap install task --classic
- sudo apt-get update
- sudo apt-get install -y virtualenv
script:
# Use appropriate branch: PR branch for PRs, main for cron
- |
if [ "$TRAVIS_EVENT_TYPE" = "cron" ]; then
BRANCH="main"
MANIFEST_SUFFIX="manifest_suffix=-nightly"
else
BRANCH="${TRAVIS_PULL_REQUEST_BRANCH:-main}"
MANIFEST_SUFFIX=""
fi
# Prepare the project
- CI=true IS_HEADLESS=true task install branch=${BRANCH} ${MANIFEST_SUFFIX}
- CI=true IS_HEADLESS=true task install-zephyr
# Prepare files
- CI=true IS_HEADLESS=true task SOC=ElemRV-H TARGET=SG13CMOS5L asic:prepare
- CI=true IS_HEADLESS=true task SOC=ElemRV-C TARGET=SG13CMOS5L asic:prepare
- CI=true IS_HEADLESS=true task SOC=ElemRV-N TARGET=SG13CMOS5L asic:prepare
# Compile baremetal firmware
- CI=true IS_HEADLESS=true task SOC=ElemRV-H baremetal:compile
- CI=true IS_HEADLESS=true task SOC=ElemRV-C baremetal:compile
- CI=true IS_HEADLESS=true task SOC=ElemRV-N baremetal:compile
# Prepare FPGA files
- CI=true IS_HEADLESS=true task SOC=ElemRV-H TARGET=SG13CMOS5L fpga:prepare
- CI=true IS_HEADLESS=true task SOC=ElemRV-C TARGET=SG13CMOS5L fpga:prepare
- CI=true IS_HEADLESS=true task SOC=ElemRV-N TARGET=SG13CMOS5L fpga:prepare
# TODO ElemRV-C is currently missing in Zephyr
# Compile Zephyr firmware
- CI=true IS_HEADLESS=true task SOC=ElemRV-H zephyr:compile
#- CI=true IS_HEADLESS=true task SOC=ElemRV-C zephyr:compile
- CI=true IS_HEADLESS=true task SOC=ElemRV-N zephyr:compile
# Synthesize FPGA design
- CI=true IS_HEADLESS=true travis_wait 20 task SOC=ElemRV-H TARGET=SG13CMOS5L fpga:synthesize
- CI=true IS_HEADLESS=true travis_wait 20 task SOC=ElemRV-C TARGET=SG13CMOS5L fpga:synthesize
- CI=true IS_HEADLESS=true travis_wait 20 task SOC=ElemRV-N TARGET=SG13CMOS5L fpga:synthesize
# TODO Full RTL to GDS flow takes too long for travis
# Generate layout
#- CI=true IS_HEADLESS=true task SOC=ElemRV-H TARGET=SG13CMOS5L asic:build
# Add metal fill
#- CI=true IS_HEADLESS=true task SOC=ElemRV-H TARGET=SG13CMOS5L asic:fill
# Run maximal DRC
#- CI=true IS_HEADLESS=true task SOC=ElemRV-H TARGET=SG13CMOS5L asic:drc
notifications:
email:
on_success: never
on_failure: always
recipients:
- nightly.reports@aesc-silicon.de