Repository: conda-forge/conda-smithy

Issue:
Change travis.yml from linux-ppc64le to separte os and arch tags for travsi-ci.com
Issue: travis-ci.com needs different os/arch defines in the travis.yml

https://blog.travis-ci.com/2019-11-12-multi-cpu-architecture-ibm-power-ibm-z

We currently use the method below, which is now marked legacy:
```
os: linux-ppc64le
```

For the new style, we need to use:
```
os: linux
arch: ppc64le
```


Discussion:
Is this something you feel comfortable tackling, @jayfurmanek? 🙂
There’s a bit more than just this change I think. I’ve tried on some of my non-forge local repos and the new instances fired up super fast (containers vs VMs) but quickly errored.

I’ll try to at least identify what’s needed here and update this issue.

Ah ok. Thanks for clarifying. Yeah additional guidance would be good.
The new travis-ci.com uses LXD containers. Running Docker in LXD containers is weird.

It seems there is no TTY, so the `-ti` arguments won't work.
Dropping that gets us further, but then we hit:

```
WARNING: No swap limit support
WARNING: bridge-nf-call-iptables is disabled
WARNING: bridge-nf-call-ip6tables is disabled
Unable to find image 'condaforge/linux-anvil-ppc64le:latest' locally
latest: Pulling from condaforge/linux-anvil-ppc64le
23bd9eb8fdc0: Pulling fs layer
293c34575e17: Pulling fs layer
23bd9eb8fdc0: Download complete
293c34575e17: Verifying Checksum
293c34575e17: Download complete
23bd9eb8fdc0: Pull complete
docker: failed to register layer: Error processing tar file(exit status 1): lchown /opt/conda/LICENSE.txt: invalid argument.

See 'docker run --help'.

The command "./ci_support/run_docker_build.sh" exited with 1.
```

Which is an issue with the overlay storage driver that docker uses not working right in an LXD environment. A similar issue over in the kube community: https://github.com/kubernetes/minikube/issues/946

I'll try a few things.
So on my chromebook which also runs linux in an lxd container the storage driver for docker is
`btrfs` which seems to work fine.  This is obviously dependant on the host OS using that.
I tried to have it start up just a hello-world container and that worked ok.
So there is something specific to that layer in the anvil image where the `/opt/conda/LICENSE` file is that is causing the permissions issue.
@jayfurmanek do you have a sample repository that we can play around with for this?
I've dug into the images, and found the cause for the issue.  Will make the changes soonish after landing the new image builds
Nice! 
Oh and not sure if you still need an sample directory, I just set up a barebones repo and enabled the trigger to Travis-ci.com.  Seems like you are good to go though?
https://travis-ci.com/conda-forge/zlib-feedstock/builds/138350723

Resolving patch:
diff --git a/conda_smithy/ci_register.py b/conda_smithy/ci_register.py
--- a/conda_smithy/ci_register.py
+++ b/conda_smithy/ci_register.py
@@ -63,7 +63,7 @@
             "and put it in ~/.conda-smithy/anaconda.token"
         )
 
-travis_endpoint = "https://api.travis-ci.org"
+travis_endpoint = "https://api.travis-ci.com"
 drone_endpoint = "https://cloud.drone.io"
 
 
@@ -447,7 +447,7 @@ def travis_encrypt_binstar_token(repo, string_to_encrypt):
     from Crypto.Cipher import PKCS1_v1_5
     import base64
 
-    keyurl = "https://api.travis-ci.org/repo/{0}/key_pair/generated".format(
+    keyurl = "https://api.travis-ci.com/repo/{0}/key_pair/generated".format(
         repo
     )
     r = requests.get(keyurl, headers=travis_headers())
diff --git a/conda_smithy/cli.py b/conda_smithy/cli.py
--- a/conda_smithy/cli.py
+++ b/conda_smithy/cli.py
@@ -212,13 +212,17 @@ def __call__(self, args):
 
         print("CI Summary for {}/{} (can take ~30s):".format(owner, repo))
         if args.travis:
-            ci_register.add_project_to_travis(owner, repo)
+            # Assume that the user has enabled travis-ci.com service
+            # user-wide or org-wide for all repos
+            # ci_register.add_project_to_travis(owner, repo)
             ci_register.travis_token_update_conda_forge_config(
                 args.feedstock_directory, owner, repo
             )
             time.sleep(1)
             ci_register.travis_configure(owner, repo)
-            ci_register.travis_cleanup(owner, repo)
+            # Assume that the user has enabled travis-ci.com service
+            # user-wide or org-wide for all repos
+            # ci_register.travis_cleanup(owner, repo)
         else:
             print("Travis registration disabled.")
         if args.circle:


Test patch:
diff --git a/tests/recipes/click-test-feedstock/README.md b/tests/recipes/click-test-feedstock/README.md
--- a/tests/recipes/click-test-feedstock/README.md
+++ b/tests/recipes/click-test-feedstock/README.md
@@ -17,7 +17,7 @@ Current build status
 ====================
 
 Linux: [![Circle CI](https://circleci.com/gh/conda-forge/click-test-feedstock.svg?style=shield)](https://circleci.com/gh/conda-forge/click-test-feedstock)
-OSX: [![TravisCI](https://travis-ci.org/conda-forge/click-test-feedstock.svg?branch=master)](https://travis-ci.org/conda-forge/click-test-feedstock)
+OSX: [![TravisCI](https://travis-ci.com/conda-forge/click-test-feedstock.svg?branch=master)](https://travis-ci.com/conda-forge/click-test-feedstock)
 Windows: [![AppVeyor](https://ci.appveyor.com/api/projects/status/github/conda-forge/click-test-feedstock?svg=True)](https://ci.appveyor.com/project/conda-forge/click-test-feedstock/branch/master)
 
 Current release info
@@ -59,7 +59,7 @@ A feedstock is made up of a conda recipe (the instructions on what and how to bu
 the package) and the necessary configurations for automatic building using freely
 available continuous integration services. Thanks to the awesome service provided by
 [CircleCI](https://circleci.com/), [AppVeyor](https://www.appveyor.com/)
-and [TravisCI](https://travis-ci.org/) it is possible to build and upload installable
+and [TravisCI](https://travis-ci.com/) it is possible to build and upload installable
 packages to the [conda-forge](https://anaconda.org/conda-forge)
 [Anaconda-Cloud](https://anaconda.org/) channel for Linux, Windows and OSX respectively.