HomePhabricator

Use real types for build instructions

Description

Use real types for build instructions

Summary:
Refactored build instructions to use concrete types and
build.Instruction as an interface instead of relying on a simple enum
and arbitrary string arguments. The formal types result in:

  1. Clearer internal data structures
  2. Partial compilation and proper argument quoting for all instructions moved into the common build package
  3. Higher order instructions like build.RunAll that easily reduce to compiler specific output

Test Plan: Run arc unit or go test ./...

Reviewers: thcipriani, mmodell, Release-Engineering-Team

Reviewed By: thcipriani, Release-Engineering-Team

Tags: Release-Engineering-Team

Differential Revision: https://phabricator.wikimedia.org/D741

Details

Provenance
dduvallAuthored on Aug 8 2017, 12:12 AM
Reviewer
Release-Engineering-Team
Differential Revision
D741: Use real types for build instructions
Parents
rGBLBR3071d9290e5f: Quote CLI arguments in `RunsConfig` instructions
Branches
Unknown
Tags
Unknown
ChangeId
None