8000 chore(common): add new PR control commands to manage builds · Issue #8361 · keymanapp/keyman · GitHub
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content
chore(common): add new PR control commands to manage builds #8361
Open
@mcdurdin

Description

@mcdurdin
7B66

It would be useful to be able to skip certain builds or do only builds without artifacts etc. Rationale: many of our minor changes are triggering many builds, and while this is a good default, we can reduce the burden on the build agents by being a little more circumspect when we know certain platforms will not be impacted. We can also reduce the artifact burden and build times by skipping release builds when they are not needed.

These commands would override the defaults -- so you could force a build where it would not automatically run otherwise, for example. The following commands would be supported:

  • skip: Skip build altogether for a given target:

    Build-bot: skip windows,developer
    
  • build: Just compile and run unit tests on given target:

    Build-bot: build windows,developer
    
  • release: Make a full installer for a given target and make it available as an artifact on the PR, good for user testing:

    Build-bot: release windows,developer
    

QUESTION: Do we need to support additional commands or parameters for commands? For example, Developer has a set of low-cost unit tests, plus a very long regression test suite (25+ minutes), which we could do with test(quick), test(full) and the default (test) would be test(quick). Something like that?

  • use test-quick vs test-full vs test perhaps, and we may be able to pass that into build.sh in the future as well.
  • PR builds default to quick tests (but full installer builds?) -- but can override
  • nightly builds do full tests
  • master-merge builds do not build installers

Multiple commands in a comment should be supported.

The following build targets should be defined:

  • android
  • common (for tests)
  • core (for tests)
  • developer
  • ios
  • linux
  • mac
  • web
  • windows

QUESTION: Am I missing any? Perhaps the ability to specify platform for common + core would be helpful?

  • ability to skip build of sample apps would help

Multiple targets should be comma separated, suggest no spaces between to support future parameters.

The commands could be:

  • Build-bot: skip [target[,...]] -- don't build anything for these target(s)
  • Build-bot: test [target[,...]] -- only compile and run automated tests for these target(s)
  • Build-bot: release [target[,...]] -- test + build an installable artifact for these target(s), if applicable (i.e. release common would not be an error but would only run tests for common)

These commands will be checked on all comments in a PR and are consolidated; later commands override earlier commands.

IDEA: reduce set of default builds, e.g. don't build Developer,Android,iOS if Web builds?

Metadata

Metadata

Assignees

Labels

choreciIssues relating to build infrastructurecommon/

Type

No type

Projects

Status

In Progress

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions

    0