# Deploy Gerrit Artifacts

version v2.8.4-19-g7c824ff

Gerrit Artifacts are stored on Google Cloud Storage. Via the API Console the Gerrit maintainers have access to the `Gerrit Code Review` project. This projects host several buckets for storing Gerrit artifacts:

- `gerrit-api`:

  Bucket to store the Gerrit Extension API Jar and the Gerrit Plugin API Jar.

- `gerrit-maven`:

  Bucket to store Gerrit Subproject Artifacts (e.g. `gwtjsonrpc` etc.).

- `gerrit-plugins`:

  Bucket to store Gerrit Core Plugin Artifacts.

## Deploy Configuration in Maven `settings.xml`

To upload artifacts to a bucket the user must authenticate with a username and password. The username and password need to be retrieved from the API Console:

- Go to the `Gerrit Code Review` project

- In the menu on the left select `Google Cloud Storage` > `Interoperable Access`

- Use the `Access Key` as username

- Click under `Secret` on the `Show` button to find the password

To make the username and password known to Maven, they must be configured in the `~/.m2/settings.xml` file.

      <settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
                xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
                xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd">
        <servers>
          <server>
            <id>gerrit-api-repository</id>
            <username>GOOG..EXAMPLE.....EXAMPLE</username>
            <password>EXAMPLE..EXAMPLE..EXAMPLE</password>
          </server>
          <server>
            <id>gerrit-maven-repository</id>
            <username>GOOG..EXAMPLE.....EXAMPLE</username>
            <password>EXAMPLE..EXAMPLE..EXAMPLE</password>
          </server>
          <server>
            <id>gerrit-plugins-repository</id>
            <username>GOOG..EXAMPLE.....EXAMPLE</username>
            <password>EXAMPLE..EXAMPLE..EXAMPLE</password>
          </server>
        </servers>
      </settings>

### Gerrit Subprojects

- You will need to have the following in the `pom.xml` to make it deployable to the `gerrit-maven` storage bucket:

      <distributionManagement>
        <repository>
          <id>gerrit-maven-repository</id>
          <name>Gerrit Maven Repository</name>
          <url>gs://gerrit-maven</url>
          <uniqueVersion>true</uniqueVersion>
        </repository>
      </distributionManagement>

- Add this to the `pom.xml` to enable the wagon provider:

      <build>
        <extensions>
          <extension>
            <groupId>com.googlesource.gerrit</groupId>
            <artifactId>gs-maven-wagon</artifactId>
            <version>3.3</version>
          </extension>
        </extensions>
      </build>

### Gerrit Core Plugins

- You will need to have the following in the `pom.xml` to make it deployable to the `gerrit-plugins` storage bucket:

      <distributionManagement>
        <repository>
          <id>gerrit-plugins-repository</id>
          <name>Gerrit Plugins Repository</name>
          <url>gs://gerrit-plugins</url>
          <uniqueVersion>true</uniqueVersion>
        </repository>
      </distributionManagement>

- Add this to the `pom.xml` to enable the wagon provider:

      <build>
        <extensions>
          <extension>
            <groupId>com.googlesource.gerrit</groupId>
            <artifactId>gs-maven-wagon</artifactId>
            <version>3.3</version>
          </extension>
        </extensions>
      </build>

Part of Gerrit Code Review