Package: artify
Upload to Nexus, Upload files to hooks, Modify version number, Syncing of GitLab/GitHub type repository, Generate template files, Create Git tags, Extract commands from Git commit messages, Create SonarQube projects, Archive file(s), Create changelog.md fileInstallationYou can download and install the latest version of this software from the Python package index (PyPI) as follows::pip install --upgrade artifyUsagepython -m artify --help=

python -m artify --command <command> [Options]orpython -m artify -c <command> [Options]Paramscommand         nexus, syncrepo, deploy, deltav, create, extract, initialize, archiveCreate CHANGELOG.md filepython -m artify -c changelogOptional params--projectname         Used to specify project when solution has more than 1 project. For .NET/NET core projects.Net/.Netcore example below:python -m artify -c changelog --projectname ClientUpload to Nexuspython -m artify -c nexus -f <format> -n <artifact_name> -h <nexus_repository_base_url>ImportantArtifact name should include artifact id and version number. E.g example-ws-1.0.0.warParams-f, --format                       Nexus upload format. Types supported: raw, npm, maven, nuget, pypi, helm-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 proxyOptional Parameter(s)--file2                          Allow second file to be upload, will be uploaded as a classifierEnvironment variable(s) (Required)CI_COMMIT_BRANCHThe pipeline CI branch that the Nexus upload is being initiated fromEnvironment variables (Optional if set with -u, -p, -g parameter above)NEXUS_GROUP_IDGroup ID of the project e.g com.testing.testapplicationNEXUS_USERNAMEUsername of nexus user that will upload artifactNEXUS_PASSWORDPassword of nexus user that will upload artifactDeploy App using custom AWX hostpython -m artify -c deploy -f <manifest_file.yml> -h <awx_host>Environment variables needDEPLOY_TOKENToken used to deploy applicationChange Package versionArtify uses semantic version 2.0.python -m artify -c deltav -t patch -a npmpython -m artify -c version -t patch -a flutterpython -m artify -c deltav -t auto -a other --file=setup.pypython -m artify -c version -t minor -a gradle --file=version.propertiesParams-a, --archtype         npm, gradle, flutter, maven, dotnet, other-t, --type                 major, minor, patch, prerelease, autoOptional Params--preValue         Prerelease version value e.g SNAPHOT, RELEASE, BUILD, beta, alpa--getversion       Get the current application version--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 directoryPush changes to GitLab/GitHub repositoryRecommendation: You can create a feature branch, then perform your code changes before pushing changes to remotepython -m artify -c syncrepo -m <message> -bParams-c, --message         Commit message-b, --branch           Optional, by default, it will push to 'develop' branchEnvironment variables needPRIVATE_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: GitLabCreating a personal access token: GitHubN.BA commit is performed automatically followed by a pushCreating Tagspython -m artify -c syncrepo -m tagOptional Params--projectname         Used to specify project when solution has more than 1 project. For .NET/NET core projectspython -m artify -c syncrepo -m tagCreates a git tag of repository branch that task is executed on e.g v-1.0.0-a56def9python -m artify -c syncrepo -m tag --projectname ClientCreates a git tag of repository branch for the Client project that task is executed on (For .NET/.NET core projects) e.g v-1.0.0.0-b56dcf9N.BPlease set environment variableCI_COMMIT_SHORT_SHA(This variable is already set in GitLab type repository)Generate Template filesGenerate template .gitlab-ci.yml filepython -m artify -c create -f gitlabciGeneate template manifest.yml filepython -m artify -c create -f manifestParams-f, --file         File template to generateSupported files.gitlab-ci.ymlmanifest.ymlExtract commands from GIT messagepython -m artify -c extractN.BIf manifest.yml file is present, it will update version number in that file also.Parametersversion/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"Environment variable(s) neededCI_COMMIT_MESSAGE       This the variables that is used to extract dictionary formatted commandN.BFor GitHub, you can set value using commands below pipeline line (*.yml):env:CI_COMMIT_MESSAGE: ${{ github.event.head_commit.message }}Optional Parametersbranch - speficies branch you want to push changes. If branch is not specified, it push changes to 'develop' branch by defaultnocommit - Does not create feature branch with version changefile - File name that you want to update version number. It should be relative to artify execution directoryfile2 - An additional file that you want to update version number. It should be relative to artify execution directorySample commit messagesAdded 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' branchAdded search functionality {"deltav": "major", "archtype": "gradle" } - Updates the major version of a java project with Gradle build toolAdded edit functionality {"version": "minor", "a": "flutter" } - Updates the minor version of a flutter projectAdd filter functionality {"version": "prerelease", "archtype": "npm", "preValue": "beta"} - Updates the prerelease value i.e Version 1.0.0 would change to 1.0.0-betaUpgrade 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-beta2Initialize SonarQube projectpython -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 commandpython -m artify -c initialize -h <SonarQube_base_url> -k <project-key> -n <project-name> -u <username> -p <password> -l java -a gradlepython -m artify -c initialize -h <SonarQube_base_url> -k <project-key> -n <project-name> -u <username> -p <password> -l java -a mavenFor Windows Runner, Other (JS, TS, Go, Python, PHP, ...)python -m artify -c initialize -h <SonarQube_base_url> -k  -n  -u  -p  -l other -a windowsFor 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 linuxParameters-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 phpArchive file(s)Uses Shutil Python library to create archive filepython -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.