Upload to Nexus, Upload files to hooks, Modify version number, Sync to GitLab type repository, Extract command from Git commit message, Create SonarQube project, Generate template files and Create archives
Project description
Upload to Nexus, Upload files to hooks, Modify version number, Sync to GitLab type repository, Generate template files, Extract commands from Git commit messages, Create SonarQube projects, Archive file(s)
Installation
You can download and install the latest version of this software from the Python package index (PyPI) as follows::
pip install --upgrade artify
Usage
python -m artify --help=
python -m artify --command <command> [Options]
or
python -m artify -c <command> [Options]
Params
command nexus, syncrepo, deploy, deltav, create
Upload to Nexus
python -m artify -c nexus -f <format> -n <artifact_name> -h <nexus_repository_base_url>
Important
Artifact name should include artifact id and version number. E.g example-ws-1.0.0.war
Params
-f, --format Nexus upload format. Types supported: raw, npm, maven
-w, --workdirectory Working directory of artifact to be uploaded to Nexus repository
-n, --artifactname Artifact name
-r, --repository Nexus repository to upload to: e.g -snapshots
-g, --groupid Group ID for Maven2 type repository, Environment variable: NEXUS_GROUP_ID
-d, --directory Directory for RAW type repository
-u, --username Username of nexus user, Environment variable: NEXUS_USERNAME
-p, --password Password of nexus user, Environment variable: NEXUS_PASSWORD
--proxy Sets Http proxy
--proxysec Sets Https proxy
Optional Parameter(s)
--file2 () Allow second file to be upload, will be uploaded as a classifier
Environment variables (Optional if set with -u, -p, -g parameter above)
NEXUS_GROUP_ID Group ID of the project e.g com.testing.testapplication
NEXUS_USERNAME Username of nexus user that will upload artifact
NEXUS_PASSWORD Password of nexus user that will upload artifact
Deploy App using custom AWX host
python -m artify -c deploy -f <manifest_file.yml> -h <awx_host>
Environment variables need
DEPLOY_TOKEN Token used to deploy application
Change Package version
Artify uses semantic version 2.0.
python -m artify -c deltav -t patch -a npm
python -m artify -c deltav -t auto -a other --file=setup.py
Params
-a, --archtype npm, gradle, flutter, maven, dotnet, other
-t, --type major, minor, patch, prerelease, auto
Optional Params
--preValue Prerelease version value e.g SNAPHOT, RELEASE, BUILD, beta, alpa
--nocommit Does not create feature branch with version change
--file File name that you want to update version number. It should be relative to artify execution directory
--file2 An additional file that you want to update version number. It should be relative to artify execution directory
Push changes to GitLab repository
Recommendation: You can create a feature branch, then perform your code changes before pushing changes to remote
python -m artify -c syncrepo -m <message> -b
Params
-c, --message Commit message -b, --branch Optional, by default, it will push to 'develop' branch
Environment variables need
PRIVATE_TOKEN, popularly known as personal access token is needed to perform the push. This can be created by following this guide: Creating a personal access token
N.B A commit is performed automatically followed by a push
Generate Template files
Generate template .gitlab-ci.yml file
python -m artify -c create -f gitlabci
Geneate template manifest.yml file
python -m artify -c create -f manifest
Params -f, --file File template to generate
Supported files
- .gitlab-ci.yml
- manifest.yml
Extract commands from GIT message
python -m artify -c extract
N.B If manifest.yml file is present, it will update version number in that file also.
Parameters
-
version/deltav - specifies type of version change e.g "version": "patch", "deltav": "patch", "version": "minor", "version": "auto"
-
archtype - specifies project architecture e.g "archtype": "npm", "archtype": "gradle", "archtype": "flutter", "archtype": "other"
Optional Parameters
-
branch - speficies branch you want to push changes. If branch is not specified, it push changes to 'develop' branch by default
-
nocommit - Does not create feature branch with version change
-
file - File name that you want to update version number. It should be relative to artify execution directory
-
file2 - An additional file that you want to update version number. It should be relative to artify execution directory
Sample commit messages
-
Added login functionality {"version": "patch", "archtype": "npm", "branch": "release-1.0.0" } - Updates the patch version of npm type project, and push to branch called 'release-1.0.0' branch
-
Added search functionality {"deltav": "major", "archtype": "gradle" } - Updates the major version of a java project with Gradle build tool
-
Added edit functionality {"version": "minor", "a": "flutter" } - Updates the minor version of a flutter project
-
Add filter functionality {"version": "prerelease", "archtype": "npm", "preValue": "beta"} - Updates the prerelease value i.e Version 1.0.0 would change to 1.0.0-beta
-
Upgrade from Angular 11 to Angular 12 {"version": "auto", "archtype": "gradle", "branch": "feature/angular-12"} - Updates the pre-release integer value by 1 e.g 1.0.0-beta1 will change to 1.0.0-beta2
Initialize SonarQube project
python -m artify -c initialize -h <SonarQube_base_url> -k <project-key> -n <project-name> -u <username> -p <password> -a <arch_type/os> -l <language>
Sample command
python -m artify -c initialize -h <SonarQube_base_url> -k <project-key> -n <project-name> -u <username> -p <password> -l java -a gradle
python -m artify -c initialize -h <SonarQube_base_url> -k <project-key> -n <project-name> -u <username> -p <password> -l java -a maven
For Windows Runner, Other (JS, TS, Go, Python, PHP, ...)
python -m artify -c initialize -h <SonarQube_base_url> -k -n -u -p -l other -a windows
For Linux/macOS runner, Other (JS, TS, Go, Python, PHP, ...)
python -m artify -c initialize -h <SonarQube_base_url> -k -n -u -p -l other -a linux
Parameters
-l, --language => Possible values: JS, TS, Go, Python, PHP, other)
-a, --archtype => Architecture, OS (depends on usage)
-n, --projectname => Project name.
-k, --projectkey => Project key. This should be a unique identifier for project.
-u, --username => Username for SonarQube.
-p, --password => Password for SonarQube. The user should be able to create projects.
N.B. The user should have the permission to create/modify projects.
python -m artify -c initialize -h <SonarQube_base_url> -k -n -u -p -a php
Archive file(s)
Uses Shutil Python library to create archive file
python -m artify -c archive -n <archive_name> -f <archive_format> -w <root_dir> -d base_dir>
Parameters
-n, --archivename Name for the archive file that will be created.
-f, --format Format for the archive e.g zip, tar, gztar, bztar, xztar.
-w, --rootdir Root directory is a directory that will be the root directory of the archive.
-d, --basedir Base directory is the directory where we start archiving from.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file artify-1.8.7.tar.gz
.
File metadata
- Download URL: artify-1.8.7.tar.gz
- Upload date:
- Size: 21.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.4.1 importlib_metadata/4.0.1 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.60.0 CPython/3.9.5
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | c36a555ae791a0b6cc88509f70476ba97f12f02bb98a5d4eb4a1ebd2f96faa29 |
|
MD5 | 853a140713b0dc5f44ca1fac5d37aeba |
|
BLAKE2b-256 | 5085f2c9979da6648a6e2f55eb338799581f5270163d117f7e5e2fc4a20a203f |
File details
Details for the file artify-1.8.7-py3-none-any.whl
.
File metadata
- Download URL: artify-1.8.7-py3-none-any.whl
- Upload date:
- Size: 22.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.4.1 importlib_metadata/4.0.1 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.60.0 CPython/3.9.5
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 0b64301aa0d0a28ca3e294506733f655644ac9a971487a917099d11c5d6f7807 |
|
MD5 | d36eaf5a4319e0916dbf8a79c445ecf8 |
|
BLAKE2b-256 | bd1bcd1571619e238dd12c9aeb1da596afad7ea3523165039bd4be59134c6eaf |