aboutsummaryrefslogtreecommitdiffhomepage
path: root/protoc-artifacts
diff options
context:
space:
mode:
authorGravatar Kun Zhang <zhangkun@google.com>2015-04-06 14:31:29 -0700
committerGravatar Kun Zhang <zhangkun@google.com>2015-04-06 17:36:33 -0700
commitc5a2a7c3dba6a90a52689277d5a4eb08a5a383d2 (patch)
treec42f93a67d7acfe9147853acba37a7fa102e2ddf /protoc-artifacts
parent4990875f0038da891badcecdd0d974de85ef043b (diff)
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
Diffstat (limited to 'protoc-artifacts')
-rw-r--r--protoc-artifacts/README.md57
-rwxr-xr-xprotoc-artifacts/build-protoc.sh15
-rw-r--r--protoc-artifacts/pom.xml5
3 files changed, 75 insertions, 2 deletions
diff --git a/protoc-artifacts/README.md b/protoc-artifacts/README.md
index 2f3ed218..8768a05b 100644
--- a/protoc-artifacts/README.md
+++ b/protoc-artifacts/README.md
@@ -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
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
```
+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>
+```
diff --git a/protoc-artifacts/build-protoc.sh b/protoc-artifacts/build-protoc.sh
index 50c4b349..714b1bec 100755
--- a/protoc-artifacts/build-protoc.sh
+++ b/protoc-artifacts/build-protoc.sh
@@ -71,7 +71,13 @@ checkArch ()
fi
elif [[ "$OS" == osx ]]; then
format="$(file -b "$1" | grep -o "[^ ]*$")"
- assertEq $format "x86_64" $LINENO
+ if [[ "$ARCH" == x86_32 ]]; then
+ assertEq $format "i386" $LINENO
+ elif [[ "$ARCH" == x86_64 ]]; then
+ assertEq $format "x86_64" $LINENO
+ else
+ fail "Unsupported arch: $ARCH"
+ fi
else
fail "Unsupported system: $(uname)"
fi
@@ -120,6 +126,13 @@ elif [[ "$(uname)" == Linux* ]]; then
fi
elif [[ "$(uname)" == Darwin* ]]; then
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
fail "Unsupported system: $(uname)"
fi
diff --git a/protoc-artifacts/pom.xml b/protoc-artifacts/pom.xml
index 7db7b53d..6cfcf057 100644
--- a/protoc-artifacts/pom.xml
+++ b/protoc-artifacts/pom.xml
@@ -90,6 +90,9 @@
<profiles>
<profile>
<id>release</id>
+ <properties>
+ <staging.repository></staging.repository>
+ </properties>
<build>
<plugins>
<plugin>
@@ -114,7 +117,9 @@
<configuration>
<serverId>sonatype-nexus-staging</serverId>
<nexusUrl>https://oss.sonatype.org/</nexusUrl>
+ <skipStagingRepositoryClose>true</skipStagingRepositoryClose>
<autoReleaseAfterClose>false</autoReleaseAfterClose>
+ <stagingRepositoryId>${staging.repository}</stagingRepositoryId>
</configuration>
</plugin>
</plugins>