You are viewing an old version of this page. View the current version.

Compare with Current View Page History

Version 1 Next »

About

The GÉANT Software Repository is based on Artifactory (http://www.jfrog.com/products.php) with Pro Power Pack ( http://www.jfrog.com/pro-features.php). Artifactory provide base Maven/Gradle repository functionality: you can download artefacts and deploy own snapshot and release artefacts like in any repository. It can be used as mirror for any external repository. Also it provide nice GUI to manage your artefacts, deploy files manually and integration with GN Active Direcotry and Bamboo. Integration with GN AD allow to use credentials (the same are used in Intranet and all SWDSD infrastructure eg. JIRA). Integration with Bamboo (https://ci.geant.org) allow eg. performing License Check process after artefacts deploy, deployment from Bamboo with global defined credentials etc.

Artifactory Pro Power Pack allow us to support different types of repository wider adopted in software development, see available predefined repositories types bellow:

  • Build Techonologies
    • Maven
    • Gradle
    • Ivy
  • Infrastructure Package Managers
    • Docker
    • Yum
    • Puppet
    • Chef
    • Debian
    • Vagrant
  • Development Language Package Managers
    • Npm
    • Nuget
    • Conan
    • Bower
    • Opkg
    • CocoaPods
    • PHP
    • P2
    • Git
    • gitLFS
    • Ruby
    • Python
    • Go/vGo
    • Helm Chart
    • CRAN

How to access

URL https://artifactory.geant.org

User Directory: GÉANT Active Directory (the same users like in JIRA, Bamboo, Bitbucket and SonarQube)

Request account/repository TBC


Short guides

How to use Artifactory as Maven repository

GÉANT Artifactory Repositories

Artifactory allow to create three repository types: local, remote and virtual. In GÉANT we use all of them, to understood how it works read http://wiki.jfrog.org/confluence/display/RTF/Understanding+Repositories page on Artifactory documentation page.

Main repositories are:

Each GÉANT development projects have their own local repositories:

  • project-release-local - This repository contains all project release artefacts.
  • project-snapshot-local - This repository contains last 3* project snapshot artefacts.
  • project-ext-libs (optional) This repository contains dependency unavailable in public Maven repositories)

Note: Only users attached to project-developers group in GÉANT Active Directory have permissions to deploy release/snapshot artefacts.

Working with Repository in Maven

1. Request for project internal repositories in SWDSD (https://issues.geant.net/jira/browse/SWDSD)
2. Setting Up a Maven Deployment Descriptor You can follow: http://wiki.jfrog.org/confluence/display/RTF/Configuring+Deployment or:
2.1. Provide configuration in main POM file eg.:


<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.
0 http://maven.apache.org/maven-v4_0_0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <groupId>net.geant.ishare</groupId>
    <artifactId>ishare</artifactId>
    <packaging>pom</packaging>
    <version>2.0.1-SNAPSHOT</version>
    <name>${project.artifactId}</name>
    <description>I-SHARe Project</description>
    <distributionManagement>
        <repository>
            <id>GEANT Artifactory</id>
            <name>GEANT Artifactory ishare-release</name>
            <url>https://artifactory.geant.org/artifactory/ishare-release-local</url>
        </repository>
        <snapshotRepository>
            <id>GEANT Artifactory</id>
            <name>GEANT Artifactory ishare-snapshots</name>
            <url>https://artifactory.geant.org/artifactory/ishare-snapshot-local</url>
        </snapshotRepository>
    </distributionManagement>
</project>


2.2. Provide your credentials in settings.xml file.

  • Get into your profile page (click on your login name on the upper-right corner) and type-in your current password.
  • Once you enter a correct password you will see your password in the Encrypted Password field.
  • Copy this value (including the { ...\ } prefix) or use the sample server xml snippet in your settings.xml (you'd have to change the server name to match the id of your repository).
    Eg.:


    <server>
         <id>GEANT Artifactory</id>
        <username>psnc.kupinski</username>
        <password>\{DESede\}000000000</password>
    </server>

3. Try to deploy snapshot artefacts.

Reference:

Using Artifactory as maven repositories mirror

Easiest way to use GN Artifactory as global maven repositories mirror is to define profile in your POM file. If you want always use GN Artifactory you can activate profile by default. See below example how to configure it.:
...
         <profile>
            <activation>
                <activeByDefault>true</activeByDefault>
            </activation>
            <id>artifactory</id>
            <repositories>
                <repository>
                    <id>central</id>
                    <name>libs-release</name>
                    <url>https://artifactory.geant.org/artifactory/repo</url>
                </repository>
            </repositories>
            <pluginRepositories>
                <pluginRepository>
                    <id>central</id>
                    <name>plugins-release</name>
                    <url>https://artifactory.geant.net/artifactory/repo</url>
                </pluginRepository>
            </pluginRepositories>
        </profile>
...


How to use Artifactory as docker registry

TBC

How to use Artifactory as a tool for Software IPR management


Note: Currently all approved libraries are matched based on  GÉANT IPR Policy.

Reference:



The JFrog Academy provides free, unlimited access to On-Demand Online Training, some of them are dedicated to DevOps and could help you to get deep knowledge about useful Artifactory features and also build automation and DevOps best practices:

  • Artifactory Basics (60m)
  • DevOps Pipelines with Artifactory (120m)

See more at: https://academy.jfrog.com/courses




  • No labels