Adobe Experience Platform Tags is a next-generation tag management solution enabling simplified deployment of marketing technologies. For more information regarding Tags, please visit our product website.
Turbine is the orchestrator within a Tags JavaScript runtime library (the library deployed on a client website) which processes previously configured rules and delegates logic to extensions.
This project is not intended to be used directly by consumers; it is used by the Platform Tags build system and incorporated into emitted runtime libraries.
Contributions are welcomed! Read the Contributing Guide and the Testing Guide for more information.
To get started:
- Install node.js.
- Clone the repository.
- After navigating into the project directory, install project dependencies by running
npm install. cp .env-example .envand modify the environment variables as needed.
To run tests a single time, run the following command:
npm run test
To ensure your code meets our linting standards, run the following command:
npm run lint
To create a build, run the following command:
npm run build
To create a production build, run the following command:
npm run build:production
For integration tests, you can run the following commands:
- To check if the real integration libraries are ready for testing:
npm run ensure-integration-test-libraries - To force a rebuild of all the real libraries for testing:
npm run ensure-integration-test-libraries -- --force npm run test:integration- NOTE: This project relies on the launch-validation-extension-package to be publicly available on npm to run the integration tests.
When you bump package.json and open a pull request, the dev.yaml GitHub Action workflow will verify that the Turbine
version deployed to the next tag on npm matches the version in package.json. If it does not match, the workflow
will perform the following steps:
- run a production build.
- push to the npm
nexttag using the current version inpackage.json. - Exit with
failure code 78.
In the event that the deployment exits with failure code 78, the Reactor team will need to deploy the new version to
an image. After the deployment is complete, re-run the failed workflow job. It will:
- verify that the Turbine version deployed to the
nexttag on npm matches the version in package.json. - Run the unit tests
- Run Coveralls
- Run the integration tests, building new test scenario libraries if necessary.
If you push a new commit to an open PR without bumping package.json, the versions should match and the tests should run uninterrupted.
During PR review, new versions of Turbine are placed on the next tag on npm. When the PR is merged and verified, the
developer can sync the latest tag on npm by using the restore-dist-tag.yaml GitHub workflow.
Turbine supports the following browsers:
- Chrome (latest)
- Safari (latest)
- Firefox (latest)
- Edge (latest)
- iOS Safari (latest)
This project is licensed under the Apache V2 License. See LICENSE for more information.