Workstation.git

The workstation.git repository holds the source code for building the Workstation outside of fuchsia.git. For more information, see RFC-0095.

This repository is a work in progress and should be considered experimental- the official Workstation product is still in the main fuchsia.git repository.

Fetch submodules

This project uses git submodules. After checking out a branch run the git submodule command to update the dependencies.

git submodule update --init --recursive

Bootstrap

Bootstrap script in scripts/bootstrap.sh will fetch bazel.

The Workstation repository uses Bazel for its build system. To ensure that you are using the version of Bazel that was tested in CQ/CI we recommend using bazelisk. You can either add bazelisk to your path or invoke it directly.

# Assumes that WORKSTATION_REPO is set to your checkout directory
export PATH="${WORKSTATION_REPO}/tools:$PATH"

Build instructions

Pave using

bazel run //src/product:workstation_x64_paver

Additional arguments may be supplied following a -- token, matching the arguments given to the bootserver tool.

Other targets can be found at src/build/BUILD.bazel

Generated files

artifact_spec.json is generated by

bazel run //tools/build_generator

See tools/build_generator/build_generator.go for more information. Eventually, this file will be maintained by hand.

artifact_lock.json is generated by the command:

bazel run artifact_lock_updater

This is an input to the fuchsia_product_repository WORKSPACE target.

checksum.json is generated by the command

bazel run @workstation_external_packages//:workspace_checksum_updater

and is also an input to the fuchsia_product_repository WORKSPACE target.

There are more generated files in src/product. See src/product/README.md for information.