You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@beam.apache.org by al...@apache.org on 2018/08/14 22:23:37 UTC
[beam-wheels] branch master updated: Add travis build config files
and upload artifacts into dist.apache.org (#2)
This is an automated email from the ASF dual-hosted git repository.
altay pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/beam-wheels.git
The following commit(s) were added to refs/heads/master by this push:
new 83b493d Add travis build config files and upload artifacts into dist.apache.org (#2)
83b493d is described below
commit 83b493d33651ed96aa7c6cff9b8b64eaaa7c7a36
Author: Boyuan Zhang <36...@users.noreply.github.com>
AuthorDate: Tue Aug 14 15:23:36 2018 -0700
Add travis build config files and upload artifacts into dist.apache.org (#2)
* Add travis build config files and upload artifacts into dist.apache.org
* Add README.md
---
.travis.yml | 65 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
README.md | 56 ++++++++++++++++++++++++++++++++++++++++++++++++
config.sh | 13 ++++++++++++
deploy_travis.sh | 17 +++++++++++++++
4 files changed, 151 insertions(+)
diff --git a/.travis.yml b/.travis.yml
new file mode 100644
index 0000000..67327b1
--- /dev/null
+++ b/.travis.yml
@@ -0,0 +1,65 @@
+language: python
+python: 3.5
+sudo: required
+dist: trusty
+services: docker
+osx_image: xcode6.4
+
+env:
+ global:
+ - PYTHON_ARTIFACTS_DIR=python
+ - STAGING=https://dist.apache.org/repos/dist/dev/beam/${VERSION}/${PYTHON_ARTIFACTS_DIR}
+ - BEAM_SVN_DIR=https://dist.apache.org/repos/dist/dev/beam
+ - ZIP_FILE=apache-beam-${VERSION}.zip
+
+ - PLAT=x86_64
+ - BUILD_DEPENDS="Cython"
+ - TEST_DEPENDS=
+
+matrix:
+ exclude:
+ # Exclude the default Python 3.5 build
+ - python: 3.5
+ include:
+ - os: osx
+ language: generic
+ env:
+ - MB_PYTHON_VERSION=2.7
+ - os: linux
+ env:
+ - MB_PYTHON_VERSION=2.7
+ - os: linux
+ env:
+ - MB_PYTHON_VERSION=2.7
+ - UNICODE_WIDTH=16
+ - os: linux
+ env:
+ - MB_PYTHON_VERSION=2.7
+ - PLAT=i686
+ - os: linux
+ env:
+ - MB_PYTHON_VERSION=2.7
+ - PLAT=i686
+ - UNICODE_WIDTH=16
+
+before_install:
+ - source multibuild/common_utils.sh
+ - source multibuild/travis_steps.sh
+ - before_install
+
+install:
+ - wget $STAGING/$ZIP_FILE
+ - unzip $ZIP_FILE
+
+# VERSION and RC setup in travis build console > More options > Settings > Environment Variables with 'Display value in build log' enabled.
+script:
+ - build_wheel apache-beam-${VERSION} $PLAT
+
+after_success:
+ - ls -lh ${TRAVIS_BUILD_DIR}/wheelhouse/
+ - |
+ for artifact in ${TRAVIS_BUILD_DIR}/wheelhouse/*.*; do
+ mv $artifact ${artifact/$VERSION/$VERSION.$RC};
+ done
+ - source deploy_travis.sh
+ - deploy
diff --git a/README.md b/README.md
new file mode 100644
index 0000000..9dbdd7a
--- /dev/null
+++ b/README.md
@@ -0,0 +1,56 @@
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one
+ or more contributor license agreements. See the NOTICE file
+ distributed with this work for additional information
+ regarding copyright ownership. The ASF licenses this file
+ to you under the Apache License, Version 2.0 (the
+ "License"); you may not use this file except in compliance
+ with the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing,
+ software distributed under the License is distributed on an
+ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ KIND, either express or implied. See the License for the
+ specific language governing permissions and limitations
+ under the License.
+-->
+
+# Apache Beam Wheels
+
+## Overview
+
+`beam-wheels` is a helper repository of [apache beam](https://github.com/apache/beam), which helps a Release
+Manager build python wheels on Linux/MacOS in a release process.
+
+## Structure
+
+There are 2 major parts in this repository.
+* [multibuild](https://github.com/matthew-brett/multibuild) as git submodule, helps build python wheels based on different os.
+
+* [travis](https://travis-ci.com/) configuration files, setups environment variables and deployment strategy.
+
+ * `.travis.yml` contains a set of [environment variables](https://docs.travis-ci.com/user/environment-variables/) and steps of build process.
+ * `deploy_travis.sh` defines that final python wheels will be deployed to [dist.apache.org/dev](https://dist.apache.org/repos/dist/dev/beam/)
+ using svn with your apache credential.
+ * `config.sh` defines custom build steps.
+
+## User Guide
+
+* Fork this repo into your own github account.
+
+* Sign up [travis](https://travis-ci.com/) with your github account and add this folk beam-wheels repository into travis.
+
+* In travis build console > More options > Settings > Environment Variables:
+
+ * Add `RC` and `VERSION` with 'Display value in build log' enabled (e.g. RC=rc1, RELEASE=2.6.0).
+ * Add `APACHE_USERNAME` and `APACHE_SECRET` with 'Display value in build log' disabled(which encrypt your credential).
+
+ __NOTE__: If you have special characters in your credential, please escape them following the [guide](https://docs.travis-ci.com/user/encryption-keys/#note-on-escaping-certain-symbols) properly.
+
+* Create and push a new branch(e.g. release_2_6_0) into your folk beam-wheels repository, which will trigger the travis build.
+
+* Confirm that build successful and wheels get staged on dist.apache.org.
+
+* Delete your apache credential in travis environment.
diff --git a/config.sh b/config.sh
new file mode 100644
index 0000000..e56371f
--- /dev/null
+++ b/config.sh
@@ -0,0 +1,13 @@
+# Define custom utilities
+# Test for OSX with [ -n "$IS_OSX" ]
+
+function pre_build {
+ # Any stuff that you need to do before you start building the wheels
+ # Runs in the root directory of this repository.
+ :
+}
+
+function run_tests {
+ # Runs tests on installed distribution from an empty directory
+ python --version
+}
diff --git a/deploy_travis.sh b/deploy_travis.sh
new file mode 100644
index 0000000..ffef872
--- /dev/null
+++ b/deploy_travis.sh
@@ -0,0 +1,17 @@
+# Define custom utilities for deploying on travis
+
+function deploy {
+ cd ${TRAVIS_BUILD_DIR}/wheelhouse
+ svn co ${BEAM_SVN_DIR}/${VERSION}
+ for artifact in *.whl; do
+ echo $artifact
+ mv $artifact ${VERSION}/${PYTHON_ARTIFACTS_DIR}/$artifact
+ svn add ${VERSION}/${PYTHON_ARTIFACTS_DIR}/$artifact
+ cd ${VERSION}
+ # Your apache credential is needed here in order to upload artifacts into dist.apache.org
+ # Please add APACHE_USERNAME and APACHE_SECRET in travis build console > More options > Settings > Environment Variables with 'Display value in build log' disabled.
+ # After build finishes, delete your environment variables.
+ svn commit --non-interactive --no-auth-cache --username "$APACHE_USERNAME" --password "$APACHE_SECRET" -m "Upload python wheels"
+ cd ..
+ done
+}