Implement JavaScript pro-code project
Prerequisites
Node.js
Currently, only Node.js 16.13.x is supported.
Further information: Node.js
ESLint
A tool used to check the quality of the code.
Further information: ES Lint
EditorConfig
This is used to overwrite the settings of the user workspace in VS Code (IDE).
Further information: Visual Studio Marketplace
Running/building projects
Creating pro-code projects
Open Solution Designer and create a new project by clicking on the Create button. Fill out the project-specific details but from the Type drop-down make sure to select Pro-Code Project and set Implementation Language to JavaScript. Once this is created the project should appear in the Solution Designer. Optional: Open that project in Solution Designer and write a proper documentation.
Clone Git project to local machine
In order to build and run the project, the Git project should be cloned to the user's workspace. In order to check out a pro-code project, open the project after creation, navigate to the General Information and copy the Git repository URI.
Alter the URL and add the Git user, so it looks like the following:
Before:
https://auto-devops-url/managed-solutions/SOLTSgit
After:
https://git@auto-devops-url/managed-solutions/SOLTS.git
Open a terminal and clone the project. You will be prompted for a password. Please use your personal access token as password:
git clone https://git@auto-devops-url/managed-solutions/SOLTS.git
Install dependencies
In order to install all the needed dependencies to run a pro-code JavaScript project on a local machine this command needs to be run in the project directory:
npm install
Build for pro-code project
Normally, a pure JavaScript pro-code project does not need a build script, so there is none in the package.json file by default. However, with some frameworks, e.g. in frontend development, a build step is taken.
During the execution of the project pipeline, it is checked whether there is a build script in the package.json file. If this is found, it is also executed. Please note that the result must be written to the dist directory, as only the dist directory is included in the Docker image in addition to the src directory.
To run a build on a local computer, the following command can be executed in the project directory:
npm run build
If you also need a build script for local use, we recommend creating a script with the name build:local in the package.json file. This could then be called with the following command:
npm run build:local
Unit tests for pro-code projects
It's highly recommended writing unit tests for your JavaScript projects. The unit tests will be executed during the project pipeline execution.
By default, the unit test step Enable Unit Test Execution is disabled
But once you enable Enable Unit Test Execution, the script (mentioned below) is ran. This script is configurable from package.json file in the repository.
npm run test:unit
Lint for pro-code projects
To execute the linking of the sources on a local computer, the following command can be executed in the project directory:
npm run lint
If the linter should also try to fix problems automatically:
npm run lint:fix
Health Check with Readiness
To verify that a container in a pod is healthy and ready to handle traffic, there are several mechanisms. If it is determined that the Pod is not healthy, it is restarted. Currently, the health status check is done by checking if the file /dist/src/index.js exists. By default, this file is created in the build process from the src/index.js file. If you deviate from this case, you must ensure that this file is present after a build process, otherwise the Pod cannot start.
Start for pro-code projects
There are several ways to start a pro-code project in the cluster.
First, it is checked whether a start script is specified in the package.json file. If this exists, it is called. All commands required for the start can be stored in the start script.
To start, call out the following command:
npm run start
If you also need a start script for local use, we recommend creating a script with the name start:local in the package.json file. This could then be called with the following command:
npm run start:local
If there is no start script in the package.json file, it is checked whether there is a file with the name start-server.sh in the root directory. If this file exists, it will be used for the start.
If there is neither a start script in the package.json file nor a start-server.sh file, the command * node dist/src/index.js* is used.