Process to deploy artifacts for multiple platforms into a single
release. - Do not close the staging repository automatically - Added staging.repository property - Updated README with instructions for deployment - Fix building 32-bit Mac artifact
This commit is contained in:
parent
4990875f00
commit
c5a2a7c3db
@ -54,7 +54,62 @@ Before you can upload artifacts to Maven Central repository, make sure you have
|
|||||||
read [this page](http://central.sonatype.org/pages/apache-maven.html) on how to
|
read [this page](http://central.sonatype.org/pages/apache-maven.html) on how to
|
||||||
configure GPG and Sonatype account.
|
configure GPG and Sonatype account.
|
||||||
|
|
||||||
Use the following command to upload artifacts:
|
You need to perform the deployment for every platform that you want to
|
||||||
|
suppport. DO NOT close the staging repository until you have done the
|
||||||
|
deployment for all platforms.
|
||||||
|
|
||||||
|
Remove any ``SNAPSHOT`` or ``pre`` suffix from the version string before
|
||||||
|
deploying.
|
||||||
|
|
||||||
|
Use the following command to deploy artifacts for the host platform to a
|
||||||
|
staging repository.
|
||||||
```
|
```
|
||||||
$ mvn clean deploy -P release
|
$ mvn clean deploy -P release
|
||||||
```
|
```
|
||||||
|
It creates a new staging repository. Go to
|
||||||
|
https://oss.sonatype.org/#stagingRepositories and find the repository, usually
|
||||||
|
in the name like ``comgoogle-123``.
|
||||||
|
|
||||||
|
You will want to run this command on a different platform. Remember, in
|
||||||
|
subsequent deployments you will need to provide the repository name that you
|
||||||
|
have found in the first deployment so that all artifacts go to the same
|
||||||
|
repository:
|
||||||
|
```
|
||||||
|
$ mvn clean deploy -P release -Dstaging.repository=comgoogle-123
|
||||||
|
```
|
||||||
|
|
||||||
|
A 32-bit artifact can be deployed from a 64-bit host with
|
||||||
|
``-Dos.detected.arch=x86_32``
|
||||||
|
|
||||||
|
When you have done deployment for all platforms, go to
|
||||||
|
https://oss.sonatype.org/#stagingRepositories, verify that the staging
|
||||||
|
repository has all the binaries, close and release this repository.
|
||||||
|
|
||||||
|
### Tips for deploying on Windows
|
||||||
|
Under Windows the following error may occur: ``gpg: cannot open tty `no tty':
|
||||||
|
No such file or directory``. This can be fixed by configuring gpg through an
|
||||||
|
active profile in ``.m2\settings.xml`` where also the Sonatype password is
|
||||||
|
stored:
|
||||||
|
```xml
|
||||||
|
<settings>
|
||||||
|
<servers>
|
||||||
|
<server>
|
||||||
|
<id>ossrh</id>
|
||||||
|
<username>[username]</username>
|
||||||
|
<password>[password]</password>
|
||||||
|
</server>
|
||||||
|
</servers>
|
||||||
|
<profiles>
|
||||||
|
<profile>
|
||||||
|
<id>gpg</id>
|
||||||
|
<properties>
|
||||||
|
<gpg.executable>gpg</gpg.executable>
|
||||||
|
<gpg.passphrase>[password]</gpg.passphrase>
|
||||||
|
</properties>
|
||||||
|
</profile>
|
||||||
|
</profiles>
|
||||||
|
<activeProfiles>
|
||||||
|
<activeProfile>gpg</activeProfile>
|
||||||
|
</activeProfiles>
|
||||||
|
</settings>
|
||||||
|
```
|
||||||
|
@ -71,7 +71,13 @@ checkArch ()
|
|||||||
fi
|
fi
|
||||||
elif [[ "$OS" == osx ]]; then
|
elif [[ "$OS" == osx ]]; then
|
||||||
format="$(file -b "$1" | grep -o "[^ ]*$")"
|
format="$(file -b "$1" | grep -o "[^ ]*$")"
|
||||||
|
if [[ "$ARCH" == x86_32 ]]; then
|
||||||
|
assertEq $format "i386" $LINENO
|
||||||
|
elif [[ "$ARCH" == x86_64 ]]; then
|
||||||
assertEq $format "x86_64" $LINENO
|
assertEq $format "x86_64" $LINENO
|
||||||
|
else
|
||||||
|
fail "Unsupported arch: $ARCH"
|
||||||
|
fi
|
||||||
else
|
else
|
||||||
fail "Unsupported system: $(uname)"
|
fail "Unsupported system: $(uname)"
|
||||||
fi
|
fi
|
||||||
@ -120,6 +126,13 @@ elif [[ "$(uname)" == Linux* ]]; then
|
|||||||
fi
|
fi
|
||||||
elif [[ "$(uname)" == Darwin* ]]; then
|
elif [[ "$(uname)" == Darwin* ]]; then
|
||||||
assertEq "$OS" osx $LINENO
|
assertEq "$OS" osx $LINENO
|
||||||
|
if [[ "$ARCH" == x86_64 ]]; then
|
||||||
|
CXXFLAGS="$CXXFLAGS -m64"
|
||||||
|
elif [[ "$ARCH" == x86_32 ]]; then
|
||||||
|
CXXFLAGS="$CXXFLAGS -m32"
|
||||||
|
else
|
||||||
|
fail "Unsupported arch: $ARCH"
|
||||||
|
fi
|
||||||
else
|
else
|
||||||
fail "Unsupported system: $(uname)"
|
fail "Unsupported system: $(uname)"
|
||||||
fi
|
fi
|
||||||
|
@ -90,6 +90,9 @@
|
|||||||
<profiles>
|
<profiles>
|
||||||
<profile>
|
<profile>
|
||||||
<id>release</id>
|
<id>release</id>
|
||||||
|
<properties>
|
||||||
|
<staging.repository></staging.repository>
|
||||||
|
</properties>
|
||||||
<build>
|
<build>
|
||||||
<plugins>
|
<plugins>
|
||||||
<plugin>
|
<plugin>
|
||||||
@ -114,7 +117,9 @@
|
|||||||
<configuration>
|
<configuration>
|
||||||
<serverId>sonatype-nexus-staging</serverId>
|
<serverId>sonatype-nexus-staging</serverId>
|
||||||
<nexusUrl>https://oss.sonatype.org/</nexusUrl>
|
<nexusUrl>https://oss.sonatype.org/</nexusUrl>
|
||||||
|
<skipStagingRepositoryClose>true</skipStagingRepositoryClose>
|
||||||
<autoReleaseAfterClose>false</autoReleaseAfterClose>
|
<autoReleaseAfterClose>false</autoReleaseAfterClose>
|
||||||
|
<stagingRepositoryId>${staging.repository}</stagingRepositoryId>
|
||||||
</configuration>
|
</configuration>
|
||||||
</plugin>
|
</plugin>
|
||||||
</plugins>
|
</plugins>
|
||||||
|
Loading…
Reference in New Issue
Block a user