pantheon-systems / terminus-build-tools-plugin

Manage multidev environments for a Pantheon site using a GitHub PR workflow.
82 stars 68 forks source link

deploy-to-pantheon.sh fails after PR #227 merged into master #236

Closed CFin86 closed 5 years ago

CFin86 commented 5 years ago

Had two separate customers open chats this morning with this identical code. https://gist.github.com/CFin86/a5be9642b6a76a489df7ef0eda776fb1

It's now failing gracefully as intended due to PR #227

To me, on line 14 it looks as if $TERMINUS_SITE.dev and $TERMINUS_ENV are evaluating to the same value.

Any insight on how to set $TERMINUS_ENV is much appreciated.

Thanks in advance!

greg-1-anderson commented 5 years ago

It is unclear from here how those builds were working prior to #227. Seems the customers in question are using a custom workflow, possibly based on an old version of the build tools scripts.

It seems like a mistake to be installing the latest unstable Terminus Build Tools plugin on every build if you're running really old versions of the scripts. In any event, there isn't enough info here for us to be of any help.

greg-1-anderson commented 5 years ago

I can say, though, that usually TERMINUS_ENV is set from Circle variables; in the past, it used to be set from the branch name, but more recently it is set based on the Circle build number.

Sometimes, customers have been known to always use the dev environment for their builds, e.g. if they do not have multidev capability. In this instance, there should be no need to run build:env:create, though.

ataylorme commented 5 years ago

@CFin86 Terminus Build Tools 2.x is still in beta and this was a bug that, as Greg mentioned, has since been fixed.

One thing to understand about Terminus Build Tools is that it scaffolds one of our example repositories at the point in time when the project was created. Those examples are meant to be a template/starting place and for users to modify it to fit their needs.

In the current iteration, the 6.x tag of our Dockerfile pantheon-systems/docker-build-tools-ci sets a $DEFAULT_BRANCH variable and the example repositories use $DEFAULT_BRANCH to determine if a multidev should be created.

If they update to using the 6.x version of the Dockerfile and the script linked above it should help. However, these are only examples and we don't have a clear, documented migration path.

Phalconline commented 5 years ago

Hello,

I use this repo as boilerplate for my project with the Lando.

Docker image: drupaldocker/php:7.1-cli

Also, image

I tried a few months ago update terminus to the latest version, but in this case, some plugins don't work with the new version of the terminus.

About error in circleCI,

  1. With a full script from repo: image

  2. With the commented #Cleanup old multidevs code strings image

Phalconline commented 5 years ago

Related issue: https://github.com/pantheon-systems/example-wordpress-composer/issues/138

Phalconline commented 5 years ago

You can close this issue, I updated docker container and ci deploy scripts.

tedw commented 5 years ago

@CFin86 One of those customers was my colleague. We were using a modified version of the deploy script from v1, which stopped working yesterday.

For anyone else experiencing the same issue, we were able to get back up and running by doing the following:

  1. Replace the contents of the old deploy-to-pantheon.sh file with the new dev-multidev.sh one.
  2. Update to the latest docker image (https://github.com/pantheon-systems/example-wordpress-composer/commit/71227df97c5dd2d2e6c38c2380a11979a612e4a0)
    -    - image: quay.io/pantheon-public/build-tools-ci:3.x
    +    - image: quay.io/pantheon-public/build-tools-ci:6.x
greg-1-anderson commented 5 years ago

@tedw Thank you for steps on getting your scripts up to date and working again. Do you know what the cause of failure was, though? If you were using the 3.x image, then you should be using a pinned version of the Build Tools plugin. In that configuration, your tests should not break when a new dev version of the Build Tools plugin is released.

Have you defined the BUILD_TOOLS_VERSION environment variable for some reason?

tedw commented 5 years ago

@greg-1-anderson Sorry for late reply, was on PTO. Yes, we had BUILD_TOOLS_VERSION: ^2.0.0-beta12 in our config.yml file—should we remove that then?

greg-1-anderson commented 5 years ago

Yes, the BUILD_TOOLS_VERSION environment variable is only intended to be used to test the Build Tools plugin itself. When using the docker image in your tests, you should use whatever version is bundled with the docker container.

ataylorme commented 5 years ago

@tedw any update on this?

tedw commented 5 years ago

@ataylorme Thanks for following up, we are good now. In addition to removing the BUILD_TOOLS_VERSION variable we also had to update this line:

- composer create-project -n -d $HOME/.terminus/plugins pantheon-systems/terminus-build-tools-plugin:$BUILD_TOOLS_VERSION
+ composer create-project --no-dev -d $HOME/.terminus/plugins pantheon-systems/terminus-build-tools-plugin:^2.0.0-beta15
ataylorme commented 5 years ago

@tedw sounds good! Keep an eye on the Build Tools repo for a stable release in the coming months as we are actively working on version 2.