diff options
author | Kun Zhang <zhangkun@google.com> | 2015-04-06 14:31:29 -0700 |
---|---|---|
committer | Kun Zhang <zhangkun@google.com> | 2015-04-06 17:36:33 -0700 |
commit | c5a2a7c3dba6a90a52689277d5a4eb08a5a383d2 (patch) | |
tree | c42f93a67d7acfe9147853acba37a7fa102e2ddf /protoc-artifacts | |
parent | 4990875f0038da891badcecdd0d974de85ef043b (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.md | 57 | ||||
-rwxr-xr-x | protoc-artifacts/build-protoc.sh | 15 | ||||
-rw-r--r-- | protoc-artifacts/pom.xml | 5 |
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> |