Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

build 1.5.5 #8

Merged
merged 5 commits into from
Oct 31, 2017
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 5 additions & 0 deletions .gitattributes
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
* text=auto

meta.yaml text eol=lf
build.sh text eol=lf
bld.bat text eol=crlf
38 changes: 29 additions & 9 deletions .travis.yml
Original file line number Diff line number Diff line change
@@ -1,35 +1,55 @@
# This file was generated automatically from conda-smithy. To update this configuration,
# update the conda-forge.yaml and/or the recipe/meta.yaml.
# update the conda-forge.yml and/or the recipe/meta.yaml.

language: generic

os: osx
osx_image: xcode6.4

env:
matrix:

- CONDA_PY=27
- CONDA_PY=34
- CONDA_PY=35
- CONDA_PY=36
global:
# The BINSTAR_TOKEN secure variable. This is defined canonically in conda-forge.yml.
- secure: "j5kzn202BOFSntw6Jqp2HoYXkT2zierOif1hFrerGqDFFyj4iwIzbt1s8K95xDkm5YfR586TIUpLEdjAKeMev/U03jxMtQ2dDMGqgLN8SyqU5S/rG16MyjGrLc8V1RnFkvI7BIEhL1DPR0qkmnah44uvIZbMT0RN1e85q1OBHx6n7aPXkgF8qOSU4wV98OwDfu1YJlPQuj8krNr0DJyV+qHu/yX8SIvHpAIm0tAKDRougR9Q7JnyHATG2cqahJUAZxPereuu3mZnfyS0PJlvA7prCgl7GuwNtJq2b8A1YpmfM5bBETQa+pZlIfOa9q3lYaZE7C+3PlXIG/99CvE65eFGOl8N/L+9BJkXuYRl8nRsqUTOLLQLtYBy8jl+aZQxwdSXwX5JKvKGQJYg3BGRNxp4CvMsULL+ROvxwHjcFDKINgwCTajX0ijSL0/NButw8bcsugVjfVy9xOpGnKOLmGJJJ7cqrxFMsJaHpm1WW2yF4hhuYMBWVdkXx3Iy0ytRfQ6vnH2X7WEmsaX3lMhZcNPM7yIN3iMW+9OkkDMgz9jXWBcF/IgpEV+QoB0pY1Cf49Ek4MSR+gBYMGmGl7uwrtBh/y+A/BhIE4peU6NQMaqI9iSQ/TUfoUO0AhSzJj8JMFuUr67ugVkbNdKBC9Hqyd5DXaDyJvzDBafSe2IIuMU="


before_install:
# Fast finish the PR.
- |
(curl https://raw.githubusercontent.com/conda-forge/conda-forge-build-setup-feedstock/master/recipe/ff_ci_pr_build.py | \
python - -v --ci "travis" "${TRAVIS_REPO_SLUG}" "${TRAVIS_BUILD_NUMBER}" "${TRAVIS_PULL_REQUEST}") || exit 1

# Remove homebrew.
- brew remove --force $(brew list)
- brew cleanup -s
- rm -rf $(brew --cache)
- |
echo ""
echo "Removing homebrew from Travis CI to avoid conflicts."
curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/uninstall > ~/uninstall_homebrew
chmod +x ~/uninstall_homebrew
~/uninstall_homebrew -fq
rm ~/uninstall_homebrew


install:
# Install Miniconda.
- |
MINICONDA_URL="http://repo.continuum.io/miniconda"
echo ""
echo "Installing a fresh version of Miniconda."
MINICONDA_URL="https://repo.continuum.io/miniconda"
MINICONDA_FILE="Miniconda3-latest-MacOSX-x86_64.sh"
curl -O "${MINICONDA_URL}/${MINICONDA_FILE}"
curl -L -O "${MINICONDA_URL}/${MINICONDA_FILE}"
bash $MINICONDA_FILE -b

export PATH=/Users/travis/miniconda3/bin:$PATH
# Configure conda.
- |
echo ""
echo "Configuring conda."
source /Users/travis/miniconda3/bin/activate root
conda config --remove channels defaults
conda config --add channels defaults
conda config --add channels conda-forge
conda config --set show_channel_urls true
conda install --yes --quiet conda-forge-build-setup
Expand All @@ -38,4 +58,4 @@ install:
script:
- conda build ./recipe

- ./ci_support/upload_or_check_non_existence.py ./recipe conda-forge --channel=main
- upload_or_check_non_existence ./recipe conda-forge --channel=main
2 changes: 1 addition & 1 deletion LICENSE
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
BSD 3-clause license
Copyright (c) conda-forge
Copyright (c) 2015-2017, conda-forge
All rights reserved.

Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
Expand Down
34 changes: 17 additions & 17 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,22 +11,34 @@ Summary: create installer from conda packages



Current build status
====================

Linux: [![Circle CI](https://circleci.com/gh/conda-forge/constructor-feedstock.svg?style=shield)](https://circleci.com/gh/conda-forge/constructor-feedstock)
OSX: [![TravisCI](https://travis-ci.org/conda-forge/constructor-feedstock.svg?branch=master)](https://travis-ci.org/conda-forge/constructor-feedstock)
Windows: [![AppVeyor](https://ci.appveyor.com/api/projects/status/github/conda-forge/constructor-feedstock?svg=True)](https://ci.appveyor.com/project/conda-forge/constructor-feedstock/branch/master)

Current release info
====================
Version: [![Anaconda-Server Badge](https://anaconda.org/conda-forge/constructor/badges/version.svg)](https://anaconda.org/conda-forge/constructor)
Downloads: [![Anaconda-Server Badge](https://anaconda.org/conda-forge/constructor/badges/downloads.svg)](https://anaconda.org/conda-forge/constructor)

Installing constructor
======================

Installing constructor from the conda-forge channel can be achieved by adding conda-forge to your channels with:
Installing `constructor` from the `conda-forge` channel can be achieved by adding `conda-forge` to your channels with:

```
conda config --add channels conda-forge
```

Once the conda-forge channel has been enabled, constructor can be installed with:
Once the `conda-forge` channel has been enabled, `constructor` can be installed with:

```
conda install constructor
```

It is possible to list all of the versions of constructor available on your platform with:
It is possible to list all of the versions of `constructor` available on your platform with:

```
conda search constructor --channel conda-forge
Expand All @@ -51,8 +63,8 @@ packages to the [conda-forge](https://anaconda.org/conda-forge)

To manage the continuous integration and simplify feedstock maintenance
[conda-smithy](http://github.com/conda-forge/conda-smithy) has been developed.
Using the ``conda-forge.yml`` within this repository, it is possible to regenerate all of
this feedstock's supporting files (e.g. the CI configuration files) with ``conda smithy regenerate``.
Using the ``conda-forge.yml`` within this repository, it is possible to re-render all of
this feedstock's supporting files (e.g. the CI configuration files) with ``conda smithy rerender``.


Terminology
Expand All @@ -67,18 +79,6 @@ Terminology
**conda-forge** - the place where the feedstock and smithy live and work to
produce the finished article (built conda distributions)

Current build status
====================

Linux: [![Circle CI](https://circleci.com/gh/conda-forge/constructor-feedstock.svg?style=shield)](https://circleci.com/gh/conda-forge/constructor-feedstock)
OSX: [![TravisCI](https://travis-ci.org/conda-forge/constructor-feedstock.svg?branch=master)](https://travis-ci.org/conda-forge/constructor-feedstock)
Windows: [![AppVeyor](https://ci.appveyor.com/api/projects/status/github/conda-forge/constructor-feedstock?svg=True)](https://ci.appveyor.com/project/conda-forge/constructor-feedstock/branch/master)

Current release info
====================
Version: [![Anaconda-Server Badge](https://anaconda.org/conda-forge/constructor/badges/version.svg)](https://anaconda.org/conda-forge/constructor)
Downloads: [![Anaconda-Server Badge](https://anaconda.org/conda-forge/constructor/badges/downloads.svg)](https://anaconda.org/conda-forge/constructor)


Updating constructor-feedstock
==============================
Expand Down
55 changes: 26 additions & 29 deletions appveyor.yml
Original file line number Diff line number Diff line change
@@ -1,41 +1,37 @@
# This file was automatically generated by conda-smithy. To update a component of this
# file, make changes to conda-forge.yaml and/or recipe/meta.yaml, and run
# file, make changes to conda-forge.yml and/or recipe/meta.yaml, and run
# "conda smithy rerender".

environment:

CONDA_INSTALL_LOCN: "C:\\conda"

# SDK v7.0 MSVC Express 2008's SetEnv.cmd script will fail if the
# /E:ON and /V:ON options are not enabled in the batch script intepreter
# See: http://stackoverflow.com/a/13751649/163740
CMD_IN_ENV: "cmd /E:ON /V:ON /C obvci_appveyor_python_build_env.cmd"

# We set a default Python version for the miniconda that is to be installed. This can be
# overridden in the matrix definition where appropriate.
CONDA_PY: "27"
BINSTAR_TOKEN:
# The BINSTAR_TOKEN secure variable. This is defined canonically in conda-forge.yml.
secure: MP4hZYylDyUWEsrt3u3cod2sbFeRwUziH02mvQOdbjsTO/l1yIxDkP/76rSIjcGC

matrix:
- TARGET_ARCH: x86
CONDA_PY: 27
CONDA_INSTALL_LOCN: C:\\Miniconda

- TARGET_ARCH: x64
CONDA_PY: 27
CONDA_INSTALL_LOCN: C:\\Miniconda-x64

- TARGET_ARCH: x86
CONDA_PY: 34
CONDA_PY: 35
CONDA_INSTALL_LOCN: C:\\Miniconda35

- TARGET_ARCH: x64
CONDA_PY: 34
CONDA_PY: 35
CONDA_INSTALL_LOCN: C:\\Miniconda35-x64

- TARGET_ARCH: x86
CONDA_PY: 35
CONDA_PY: 36
CONDA_INSTALL_LOCN: C:\\Miniconda36

- TARGET_ARCH: x64
CONDA_PY: 35
CONDA_PY: 36
CONDA_INSTALL_LOCN: C:\\Miniconda36-x64


# We always use a 64-bit machine, but can build x86 distributions
Expand All @@ -45,33 +41,34 @@ platform:

install:
# If there is a newer build queued for the same PR, cancel this one.
# The AppVeyor 'rollout builds' option is supposed to serve the same
# purpose but it is problematic because it tends to cancel builds pushed
# directly to master instead of just PR builds (or the converse).
# credits: JuliaLang developers.
- ps: if ($env:APPVEYOR_PULL_REQUEST_NUMBER -and $env:APPVEYOR_BUILD_NUMBER -ne ((Invoke-RestMethod `
https://ci.appveyor.com/api/projects/$env:APPVEYOR_ACCOUNT_NAME/$env:APPVEYOR_PROJECT_SLUG/history?recordsNumber=50).builds | `
Where-Object pullRequestId -eq $env:APPVEYOR_PULL_REQUEST_NUMBER)[0].buildNumber) { `
throw "There are newer queued builds for this pull request, failing early." }
- cmd: |
powershell -Command "(New-Object Net.WebClient).DownloadFile('https://raw.githubusercontent.com/conda-forge/conda-forge-build-setup-feedstock/master/recipe/ff_ci_pr_build.py', 'ff_ci_pr_build.py')"
ff_ci_pr_build -v --ci "appveyor" "%APPVEYOR_ACCOUNT_NAME%/%APPVEYOR_PROJECT_SLUG%" "%APPVEYOR_BUILD_NUMBER%" "%APPVEYOR_PULL_REQUEST_NUMBER%"
del ff_ci_pr_build.py

# Cywing's git breaks conda-build. (See https://github.com/conda-forge/conda-smithy-feedstock/pull/2.)
- cmd: rmdir C:\cygwin /s /q
- appveyor DownloadFile "https://raw.githubusercontent.com/pelson/Obvious-CI/master/bootstrap-obvious-ci-and-miniconda.py"
- cmd: python bootstrap-obvious-ci-and-miniconda.py %CONDA_INSTALL_LOCN% %TARGET_ARCH% %CONDA_PY:~0,1% --without-obvci

# Add path, activate `conda` and update conda.
- cmd: call %CONDA_INSTALL_LOCN%\Scripts\activate.bat
- cmd: conda update --yes --quiet conda

- cmd: set PYTHONUNBUFFERED=1

# Add our channels.
- cmd: conda config --set show_channel_urls true
- cmd: conda install -c pelson/channel/development --yes --quiet obvious-ci
- cmd: conda config --remove channels defaults
- cmd: conda config --add channels defaults
- cmd: conda config --add channels conda-forge

# Configure the VM.
- cmd: conda install -n root --quiet --yes conda-forge-build-setup
- cmd: run_conda_forge_build_setup

# Skip .NET project specific build phase.
build: off

test_script:
- "%CMD_IN_ENV% conda build recipe --quiet"
- conda build recipe --quiet
deploy_script:

- 'python ci_support\upload_or_check_non_existence.py .\recipe conda-forge --channel=main'
- cmd: upload_or_check_non_existence .\recipe conda-forge --channel=main
27 changes: 27 additions & 0 deletions ci_support/checkout_merge_commit.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
#!/bin/bash


# Update PR refs for testing.
if [[ -n "${CIRCLE_PR_NUMBER}" ]]
then
FETCH_REFS="${FETCH_REFS} +refs/pull/${CIRCLE_PR_NUMBER}/head:pr/${CIRCLE_PR_NUMBER}/head"
FETCH_REFS="${FETCH_REFS} +refs/pull/${CIRCLE_PR_NUMBER}/merge:pr/${CIRCLE_PR_NUMBER}/merge"
fi

# Retrieve the refs.
if [[ -n "${CIRCLE_PR_NUMBER}" ]]
then
git fetch -u origin ${FETCH_REFS}
fi

# Checkout the PR merge ref.
if [[ -n "${CIRCLE_PR_NUMBER}" ]]
then
git checkout -qf "pr/${CIRCLE_PR_NUMBER}/merge"
fi

# Check for merge conflicts.
if [[ -n "${CIRCLE_PR_NUMBER}" ]]
then
git branch --merged | grep "pr/${CIRCLE_PR_NUMBER}/head" > /dev/null
fi
4 changes: 4 additions & 0 deletions ci_support/fast_finish_ci_pr_build.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
#!/bin/bash

curl https://raw.githubusercontent.com/conda-forge/conda-forge-build-setup-feedstock/master/recipe/ff_ci_pr_build.py | \
python - -v --ci "circle" "${CIRCLE_PROJECT_USERNAME}/${CIRCLE_PROJECT_REPONAME}" "${CIRCLE_BUILD_NUM}" "${CIRCLE_PR_NUMBER}"
41 changes: 32 additions & 9 deletions ci_support/run_docker_build.sh
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ config=$(cat <<CONDARC

channels:
- conda-forge
- defaults # As we need conda-build
- defaults

conda-build:
root-dir: /feedstock_root/build_artefacts
Expand All @@ -24,14 +24,30 @@ show_channel_urls: true
CONDARC
)

# In order for the conda-build process in the container to write to the mounted
# volumes, we need to run with the same id as the host machine, which is
# normally the owner of the mounted volumes, or at least has write permission
HOST_USER_ID=$(id -u)
# Check if docker-machine is being used (normally on OSX) and get the uid from
# the VM
if hash docker-machine 2> /dev/null && docker-machine active > /dev/null; then
HOST_USER_ID=$(docker-machine ssh $(docker-machine active) id -u)
fi

rm -f "$FEEDSTOCK_ROOT/build_artefacts/conda-forge-build-done"

cat << EOF | docker run -i \
-v ${RECIPE_ROOT}:/recipe_root \
-v ${FEEDSTOCK_ROOT}:/feedstock_root \
-v "${RECIPE_ROOT}":/recipe_root \
-v "${FEEDSTOCK_ROOT}":/feedstock_root \
-e HOST_USER_ID="${HOST_USER_ID}" \
-a stdin -a stdout -a stderr \
condaforge/linux-anvil \
bash || exit $?
bash || exit 1

set -e
set +x
export BINSTAR_TOKEN=${BINSTAR_TOKEN}
set -x
export PYTHONUNBUFFERED=1

echo "$config" > ~/.condarc
Expand All @@ -46,17 +62,24 @@ source run_conda_forge_build_setup
export CONDA_PY=27
set +x
conda build /recipe_root --quiet || exit 1
/feedstock_root/ci_support/upload_or_check_non_existence.py /recipe_root conda-forge --channel=main || exit 1
upload_or_check_non_existence /recipe_root conda-forge --channel=main || exit 1

set -x
export CONDA_PY=34
export CONDA_PY=35
set +x
conda build /recipe_root --quiet || exit 1
/feedstock_root/ci_support/upload_or_check_non_existence.py /recipe_root conda-forge --channel=main || exit 1
upload_or_check_non_existence /recipe_root conda-forge --channel=main || exit 1

set -x
export CONDA_PY=35
export CONDA_PY=36
set +x
conda build /recipe_root --quiet || exit 1
/feedstock_root/ci_support/upload_or_check_non_existence.py /recipe_root conda-forge --channel=main || exit 1
upload_or_check_non_existence /recipe_root conda-forge --channel=main || exit 1
touch /feedstock_root/build_artefacts/conda-forge-build-done
EOF

# double-check that the build got to the end
# see https://github.com/conda-forge/conda-smithy/pull/337
# for a possible fix
set -x
test -f "$FEEDSTOCK_ROOT/build_artefacts/conda-forge-build-done" || exit 1
Loading