The first stage in the pipeline involves compiling and preparing the specific software for further testing and deployment. Here, we can differenciate two scenarios: compiled software and web-based software.
For compiled software, such as projects written in languages like C/C++, C#, Java, Go or Rust, its build stage will typically involve the following steps:
The build system resolves and manages any external dependencies required by the software, such as libraries or frameworks. It ensures that all necessary components are available for successful compilation and linking.
The source code files are compiled into intermediate object files, and then linked together with any other additional librarries and frameworks into binary executable files. This process translates the human-readable code into machine-readable instructions.
On the other hand, for web-based software, such as projects written in JavaScript, TypeScript, HTML, CSS, etc. (also considered here all interpreted languages, such as Python), its build stage will typically involve the following steps:
Web applications typically consist of multiple assets, such as image files, multimedia, etc. The build process may involve bundling and minifying these assets to optimize their size and improve performance.
If the web application uses modern JavaScript or CSS features that are not supported by all browsers, the build process may include transpiling the code into a backward-compatible version, thus, ensuring broader browser compatibility.
Similar to compiled software, web-based projects may have dependencies on external libraries or frameworks. The build system resolves and includes these dependencies to ensure the application can function properly in all scenarios and environments.