Skip to content
Permalink

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also or learn more about diff comparisons.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also . Learn more about diff comparisons here.
base repository: m-labs/buildbot-config
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: 53629a334a04
Choose a base ref
...
head repository: m-labs/buildbot-config
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: 04f6eb80fbe6
Choose a head ref
  • 2 commits
  • 2 files changed
  • 1 contributor

Commits on Nov 26, 2017

  1. Copy the full SHA
    ceb03a3 View commit details
  2. Refactor and document ARTIQ build steps.

    whitequark committed Nov 26, 2017
    Copy the full SHA
    04f6eb8 View commit details
Showing with 51 additions and 33 deletions.
  1. +49 −33 master.cfg
  2. +2 −0 steps/sleep.py
82 changes: 49 additions & 33 deletions master.cfg
Original file line number Diff line number Diff line change
@@ -552,7 +552,6 @@ c['validation'] = {
pyqtgraphBuildFactory = BuildFactory()
addCondaBuildSteps(pyqtgraphBuildFactory,
project='pyqtgraph', package='pyqtgraph')
addCondaTeardownTestEnvironmentSteps(pyqtgraphBuildFactory)
addCondaUploadSteps(pyqtgraphBuildFactory,
force=True, channels='dev')

@@ -567,26 +566,32 @@ c['builders'].append(
# apt-get install verilator

migenBuildFactory = BuildFactory()
# Setup
addCondaPartiallyCleanCacheSteps(migenBuildFactory,
pattern='*{migen}*')
# Build the `migen` package
addCondaBuildSteps(migenBuildFactory,
project='migen', package='migen')
# Test the `migen` package
addCondaSetupTestEnvironmentSteps(migenBuildFactory,
packages=['python=3.5', 'numpydoc', 'sphinx', 'sphinx_rtd_theme'],
local_package='migen')
addPythonUnittestSteps(migenBuildFactory)
# Upload the `migen` package
addCondaUploadSteps(migenBuildFactory,
force=True, channels='dev')
# Upload the Migen documentation
addSphinxDocumentSteps(migenBuildFactory,
source_path='doc',
target_path='migen/manual')
addCondaTeardownTestEnvironmentSteps(migenBuildFactory)
addCondaUploadSteps(migenBuildFactory,
force=True, channels='dev')
addSFTPUploadSteps(migenBuildFactory,
source_path='migen/manual',
target_host='m-labs.hk',
username=secrets['sftp']['username'],
password=secrets['sftp']['password'],
target_path='migen/manual')
# Teardown
addCondaTeardownTestEnvironmentSteps(migenBuildFactory)

c['builders'].append(
BuilderConfig(
@@ -598,10 +603,13 @@ c['builders'].append(
####### MISOC

misocBuildFactory = BuildFactory()
# Setup
addCondaPartiallyCleanCacheSteps(misocBuildFactory,
pattern='*{misoc,migen}*')
# Build the `misoc` package
addCondaBuildSteps(misocBuildFactory,
project='misoc', package='misoc')
# Upload the `misoc` package
addCondaUploadSteps(misocBuildFactory,
force=True, channels='dev')

@@ -618,42 +626,40 @@ test_board_package = 'artiq-kc705-nist_clock'
test_board_hostname = 'kc705.lab.m-labs.hk'

artiqBuildFactory = BuildFactory()
# Setup
addCondaPartiallyCleanCacheSteps(artiqBuildFactory,
pattern='*{artiq,misoc,migen}*')
# Build and upload the `artiq-dev` package
addCondaBuildSteps(artiqBuildFactory,
project='artiq', package='artiq-dev')
addCondaUploadSteps(artiqBuildFactory,
force=True,
channels='dev')
# Build the `artiq` package
addCondaBuildSteps(artiqBuildFactory,
project='artiq', package='artiq')
# Test the `artiq` package
addCondaSetupTestEnvironmentSteps(artiqBuildFactory,
packages=['artiq-dev'],
local_package=packageNameFromOutputName)
addPythonCoverageSteps(artiqBuildFactory,
source_path='artiq', test_path='artiq/test')
addPythonUnittestSteps(artiqBuildFactory,
test_path='artiq/gateware/test')
addPythonCoverageSteps(artiqBuildFactory,
source_path='artiq', test_path='artiq/test')
addLitSteps(artiqBuildFactory,
test_path='artiq/test/lit',
extra_vars={ 'COVERAGE': '1', 'PYTHONPATH': '.' })
addSphinxDocumentSteps(artiqBuildFactory,
source_path='doc/manual',
target_path='artiq/manual')
addSFTPUploadSteps(artiqBuildFactory,
source_path='artiq/manual',
target_host='m-labs.hk',
username=secrets['sftp']['username'],
password=secrets['sftp']['password'],
target_path=WithProperties('artiq/manual-%(branch:~master)s'))
# Upload the `artiq` package
addCondaUploadSteps(artiqBuildFactory,
force=True,
channels='dev')
# Build and upload the `artiq-board-*` package
addTriggerSteps(artiqBuildFactory,
builder_names=["artiq-board"],
alwaysUseLatest=False,
waitForFinish=True,
set_properties={"package": test_board_package})
# Test ARTIQ with hardware in the loop
addCondaInstallToTestEnvironmentSteps(artiqBuildFactory,
packages=[test_board_package],
no_update_deps=True)
@@ -669,13 +675,25 @@ addPythonCoverageSteps(artiqBuildFactory,
addPythonCoverageCombineSteps(artiqBuildFactory)
addCoverallsUploadSteps(artiqBuildFactory,
repo_token=secrets['coveralls']['artiq'])
# Test ARTIQ on Windows with hardware in the loop
addTriggerSteps(artiqBuildFactory,
builder_names=['artiq-win64-test'],
alwaysUseLatest=False,
waitForFinish=True,
set_properties={ 'package': packageNameFromOutputName })
addFlockReleaseSteps(artiqBuildFactory,
board='kc705')
# Build and upload ARTIQ documentation
addSphinxDocumentSteps(artiqBuildFactory,
source_path='doc/manual',
target_path='artiq/manual')
addSFTPUploadSteps(artiqBuildFactory,
source_path='artiq/manual',
target_host='m-labs.hk',
username=secrets['sftp']['username'],
password=secrets['sftp']['password'],
target_path=WithProperties('artiq/manual-%(branch:~master)s'))
# Teardown
addCondaTeardownTestEnvironmentSteps(artiqBuildFactory)

c['builders'].append(
@@ -688,13 +706,26 @@ c['builders'].append(
properties = {'github_repo_name': 'artiq'},
factory = artiqBuildFactory))

artiqBoardBuildFactory = BuildFactory()
addCondaPartiallyCleanCacheSteps(artiqBoardBuildFactory,
pattern='*{artiq,misoc,migen}*')
addCondaBuildSteps(artiqBoardBuildFactory,
project='artiq', package='%(package)s', is_xilinx=True)
addCondaUploadSteps(artiqBoardBuildFactory,
force=True, channels='dev')

c['builders'].append(
BuilderConfig(
name = 'artiq-board',
slavenames = ['debian-stretch-amd64-2'],
nextSlave = nextSlave,
factory = artiqBoardBuildFactory))

artiqWin64TestBuildFactory = BuildFactory()
addUpdateSteps(artiqWin64TestBuildFactory,
project='artiq')
addCondaSetupTestEnvironmentSteps(artiqWin64TestBuildFactory,
packages=['coverage'])
addCondaInstallToTestEnvironmentSteps(artiqWin64TestBuildFactory,
packages=[WithProperties('%(package)s')])
packages=['coverage', '%(package)s'])
addPythonCoverageSteps(artiqWin64TestBuildFactory,
source_path='artiq', test_path='artiq/test',
locks=[low_latency_lock.access('exclusive')],
@@ -712,21 +743,6 @@ c['builders'].append(
nextSlave = nextSlave,
factory = artiqWin64TestBuildFactory))

artiqBoardBuildFactory = BuildFactory()
addCondaPartiallyCleanCacheSteps(artiqBoardBuildFactory,
pattern='*{artiq,misoc,migen}*')
addCondaBuildSteps(artiqBoardBuildFactory,
project='artiq', package='%(package)s', is_xilinx=True)
addCondaUploadSteps(artiqBoardBuildFactory,
force=True, channels='dev')

c['builders'].append(
BuilderConfig(
name = 'artiq-board',
slavenames = ['debian-stretch-amd64-2'],
nextSlave = nextSlave,
factory = artiqBoardBuildFactory))

####### Our Conda recipes

condaBuildFactory = BuildFactory()
2 changes: 2 additions & 0 deletions steps/sleep.py
Original file line number Diff line number Diff line change
@@ -7,6 +7,8 @@ class SleepStep(BuildStep):
"""A build step that does nothing for a predefined time."""
parms = BuildStep.parms + ['delay']

name = 'sleep'

def __init__(self, delay, **kwargs):
self.delay = delay
BuildStep.__init__(self, **kwargs)