Skip to content
This repository has been archived by the owner on Aug 13, 2024. It is now read-only.

snowplow-archive/msc-schema-api-examples

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

45 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Data Structures API CI/CD integration examples

This repository serves as a simple example of integrating Data Structures API into a typical CI/CD workflow.

Overview

In the app directory you can find a basic HTML/JS page embedding the Snowplow Javascript Tracker, while in the repo's root a file called snowplow-schemas.json describes the schema dependencies for the app.

Such file will be parsed, validated and used by Data Structures CI in a pipeline step to check that each schema is correctly deployed to the proper environment, before the code for the app gets deployed, effectively guarding against a major source of Failed Events.

Manifest validation

The snowplow-schemas.json file, which is intended to be kept in sync with the source code by declaring and keeping updated the app's schema dependencies, will be validated against the following Self Describing JSON Schema: http://iglucentral.com/schemas/com.snowplowanalytics.insights/data_structures_dependencies/jsonschema/1-0-0

CI/CD setup

This repo also features two CI/CD pipelines: one based on Travis CI (configured by .travis.yml) and one based on GitHub Actions (configured by ci.yml) This is for demonstrational purpose only: typically the developers maintaining a repository will choose only one CI/CD solution.

In this case, the GitHub Action workflow serves as a demonstration for the Data Structures CI Github Action, while the Travis CI pipeline serves as a universal example for non-GitHub CI/CD solutions.

GitHub Actions

The GitHub Actions workflow setup consists in adding the Data Structures CI Github Action as a step of a job. See ci.yml for an example and the Action's repo for reference and configuration.

Universal (e.g. Travis CI, CircleCI, Gitlab, Azure Pipelines, Jenkins...)

The universal/generic approach (for non-GitHub CI/CD solutions) is based on an executable Java artifact (JAR) which can be run directly as a CLI application. See .travis.yml for an example

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages