in aws/hhvm1/state-machine/generate.hack [374:439]
function linux_branch(): StateMachine {
return nested_state_machine(
S::BuildAndPublishLinux,
null,
Dict\merge(
dict[
S::GetPlatformsForVersion => dict[
F::Type => T::Task,
F::ResultPath => path('platforms'),
],
S::ForEach.S::Platform => dict[
F::Type => T::Map,
F::ItemsPath => path('platforms'),
F::Parameters =>
map_params(keyset[P::BuildInput, P::Version], P::Platform),
F::Iterator => nested_state_machine(
S::Platform,
P::Platform,
Dict\merge(
states_for_activity(
keyset[P::Version, P::Platform],
A::MakeBinaryPackage,
S::Platform.S::End,
S::Platform.S::End,
),
),
),
],
],
states_for_activity(
keyset[P::BuildInput, P::Version, P::Results],
A::PublishBinaryPackages,
A::PublishSourceTarball.S::And.A::PublishDockerImages,
S::BuildAndPublishLinux.S::End,
),
dict[
A::PublishSourceTarball.S::And.A::PublishDockerImages => dict[
F::Type => T::Parallel,
F::Parameters => params(P::BuildInput, P::Version),
F::Branches => vec[
nested_state_machine(
A::PublishSourceTarball,
null,
states_for_activity(
keyset[P::Version],
A::PublishSourceTarball,
A::PublishSourceTarball.S::End,
A::PublishSourceTarball.S::End,
),
),
nested_state_machine(
A::PublishDockerImages,
null,
states_for_activity(
keyset[P::Version],
A::PublishDockerImages,
A::PublishDockerImages.S::End,
A::PublishDockerImages.S::End,
),
),
],
],
],
),
);
}