Skip to content

Commit

Permalink
Add tox and travis integration
Browse files Browse the repository at this point in the history
  • Loading branch information
mike-hosseini committed Oct 8, 2019
1 parent 897f191 commit 2633ad8
Show file tree
Hide file tree
Showing 6 changed files with 91 additions and 42 deletions.
30 changes: 30 additions & 0 deletions .travis.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
language: python
dist: xenial
python:
- "3.7"

before_install:
- pip install poetry

install:
- poetry install -v
- pip install tox-travis

script:
- tox

before_deploy:
- poetry config http-basic.pypi $PYPI_USER $PYPI_PASSWORD
- poetry build

deploy:
provider: script
script: poetry publish --build
on:
tags: true
condition: "$TRAVIS_PYTHON_VERSION == 3.7"

env:
global:
- secure:
- secure:
32 changes: 21 additions & 11 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,18 @@

A Python package for validating SQL Server Integration Services (SSIS) projects. It can be used as a part of Continuous Integration pipeline.

The module works by parsing the XML content of SSIS Projects and Packages while handling all the rough edges. It identifies the configurations of the projects and validates whether they meet the specifications.

This Python application is written for Python 3.7+.

## Install

This package is available on [PyPi](https://pypi.org/project/ssis-validator/) package repository. You can install it like below:

```bash
pip install ssis_validator
```

## Usage

### 1. Projects
Expand All @@ -29,23 +39,23 @@ The following validation criteria are currently checked. The current version has

### Project

1. Project Server Version
2. Project Protection Level
3. Packages Presence in Project
4. Correct Linkage of Packages
5. Project Deployment Model
1. Project Server Version: `SQLServer2014`, `SQLServer2016`
2. Project Protection Level: `EncryptSensitiveWithPassword`
3. Packages Presence in Project: `True`
4. Linkage of Packages: `True`
5. Project Deployment Model: `Project`

### Package

1. Package Last Modified Visual Studio Version
2. Package Protection Level
3. (Optional) PragmaticWorks BIxPress Presence
4. (Optional) PragmaticWorks BIxPress Continue Execution on Error
5. (Optional) PragmaticWorks BIxPress No Reporting of Error on Failure
1. Package Last Modified Visual Studio Version: `SSIS_2016`
2. Package Protection Level: `EncryptSensitiveWithPassword`
3. (Optional) PragmaticWorks BIxPress Server Name: `server_name`
4. (Optional) PragmaticWorks BIxPress Continue Execution on Error: `True`
5. (Optional) PragmaticWorks BIxPress Reporting of Error on Failure: `False`

## Contribution

See an area for improvement, please open an issue or send a PR. :-)
See an area for improvement, please open an issue or send a PR.

## Future Improvements

Expand Down
Empty file removed README.rst
Empty file.
60 changes: 30 additions & 30 deletions pyproject.toml
Original file line number Diff line number Diff line change
@@ -1,30 +1,30 @@
[tool.poetry]
name = "ssis_validator"
version = "0.1.0"
description = "A Python package for validating SQL Server Integration Services (SSIS) packages"
homepage = "https://github.com/mahdi-hosseini/ssis_validator"
repository = "https://github.com/mahdi-hosseini/ssis_validator"
authors = ["Mike Hosseini <[email protected]>"]
license = "MIT"
readme = "README.md"

[tool.poetry.dependencies]
python = "^3.7"
colorama = "^0.4.1"
lxml = "^4.4"
gitpython = "^3.0"
crayons = "^0.2.0"

[tool.poetry.dev-dependencies]
pytest = "^3.0"
isort = "^4.3"
black = {version = "^18.3-alpha.0", allows-prereleases = true}
flake8 = "^3.7"
mypy = "^0.730.0"

[build-system]
requires = ["poetry>=0.12"]
build-backend = "poetry.masonry.api"

[tool.poetry.scripts]
ssis_validator = "ssis_validator.__main__:main"
[tool.poetry]
name = "ssis_validator"
version = "0.1.1"
description = "A Python package for validating SQL Server Integration Services (SSIS) packages"
homepage = "https://github.com/mahdi-hosseini/ssis_validator"
repository = "https://github.com/mahdi-hosseini/ssis_validator"
authors = ["Mike Hosseini <[email protected]>"]
license = "MIT"
readme = "README.md"

[tool.poetry.dependencies]
python = "^3.7"
colorama = "^0.4.1"
lxml = "^4.4"
gitpython = "^3.0"
crayons = "^0.2.0"

[tool.poetry.dev-dependencies]
pytest = "^3.0"
isort = "^4.3"
black = {version = "^18.3-alpha.0", allows-prereleases = true}
flake8 = "^3.7"
mypy = "^0.730.0"

[tool.poetry.scripts]
ssis_validator = "ssis_validator.__main__:main"
[build-system]
requires = ["poetry>=0.12"]
build-backend = "poetry.masonry.api"

2 changes: 1 addition & 1 deletion ssis_validator/__init__.py
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
__version__ = "0.1.0"
__version__ = "0.1.1"

from .ssis_validator import Mode, SSISPackage, SSISProject, ValidationPipeline
9 changes: 9 additions & 0 deletions tox.ini
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
[tox]
isolated_build = true
envlist = py37

[testenv]
whitelist_externals = poetry
commands =
poetry install -v
poetry run pytest {posargs} tests/

0 comments on commit 2633ad8

Please sign in to comment.