VA.gov uses a Continuous Integration process, which consists of the following steps:

  1. Write

    • Determine which issue to work on

    • Create feature branch

      • branch naming convention {issue-id}-{subject you are working on}

    • Code new functionality

    • Write tests for new functionality

    • Test new functionality on supported browsers (Chrome, IE, Safari, Edge)

  2. Review

    • Submit pull request

    • Run unit tests and compliance scans (kicked off when a pull request is created)

    • Test feature on review instance (page link is available on the PR page)

    • Test and peer review code (read: code review)

  3. Deploy

    • Merge code to stable code base

    • Github Actions automatically deploys changes merged into main to staging and dev

    • Github Actions automatically deploys main to production every day

Each project's code base has a branch called main by default. Anything in main is deemed to be stable and deployable. This means that anything you merge will need to be ready to immediately be live or hidden in some way behind a feature flag.

Merge changes when support can be provided. Avoid merging significant changes at the end of the day or before the weekend.

References

GitHub Flow