- package build
-
- // Phase enum type
- type Phase int
-
- // Distinct build phases that each compiler implementation should pass to
- // PhaseCompileable configuration (in the order they are defined here) to
- // allow for dependency injection during compilation.
- //
- const (
- PhasePrivileged Phase = iota // first, copies/execution done as root
- PhasePrivilegeDropped // second, copies/execution done as unprivileged user from here on
- PhasePreInstall // third, before application files and artifacts are copied
- PhaseInstall // fourth, application files and artifacts are copied
- PhasePostInstall // fifth, after application files and artifacts are copied
- )
-
- // PhaseCompileable defines and interface that all configuration types should
- // implement if they want to inject build instructions into any of the defined
- // build phases.
- //
- type PhaseCompileable interface {
- InstructionsForPhase(phase Phase) []Instruction
- }
-
- // Phases returns all build phases in the order to be compiled.
- //
- func Phases() []Phase {
- return []Phase{
- PhasePrivileged,
- PhasePrivilegeDropped,
- PhasePreInstall,
- PhaseInstall,
- PhasePostInstall,
- }
- }
|