yiisoft / yii-dev-tool

Development environment for Yii 3 packages
https://www.yiiframework.com/
69 stars 36 forks source link

Setup Travis crons #14

Closed machour closed 4 years ago

machour commented 5 years ago

As briefly discussed on slack, it's becoming harder and harder to understand build failures in Yii 3 repos, as packages are inter-dependent and a tiny change in A can brake B without us noticing for days.

As a counter measure, could we setup Travis cronjobs as suggested by @rob006 on all repositories to run like every 2 days? (still unsure about the right periodicity)

samdark commented 5 years ago

Seems not to be a problem now.

rob006 commented 5 years ago

@samdark IMO it is needed more than ever. With current fragmentation of packages it may be easy to break some package by minor BC break in used dependency (so change in package A may break package B).

samdark commented 5 years ago

What package should we test as integration one?

rob006 commented 5 years ago

This is not about integration tests. This is about breaking package tests by some external changes. Every package should have tests run every X days to ensure that they're still working fine.

rugabarbo commented 5 years ago

Where will we send notifications?

Travis supports the following options:

It seems to me that the best idea for group alerts in our case is Slack. Travis documentation has great example of separating alerts based on the build result. This allows you to receive notifications of successful builds in one channel, and notifications of failed builds in another:

notifications:
  slack:
    - rooms:
        - <account>:<token>#failures
      on_success: never
      on_failure: always
      template:
        - "%{repository_slug} (%{commit}) : %{message}"
        - "Build details: %{build_url}"
    - rooms:
        - <account>:<token>#successes
      on_success: always
      on_failure: never
      template:
        - "%{repository_slug} (%{commit}) : %{message}"
        - "Build details: %{build_url}"
samdark commented 5 years ago

Yes, Slack should be fine.

rugabarbo commented 5 years ago

@samdark can you add two new slack rooms for these purposes? We will invite everyone who is interested in receiving notifications to these rooms.

samdark commented 5 years ago

Added build-successes and build-failures.

rugabarbo commented 5 years ago

@samdark now we need encrypted credentials for Slack integration, which we can use in public repositories. Set up a new Travis CI integration and encrypt the tokens of each room.

I need encrypted credentials for both rooms. Our public configuration will look something like this:

notifications:
    slack:
        - rooms:
              - secure: "ABC5OwLpwB7L6Ca...."
          on_success: never
          on_failure: always
          template:
              - "%{repository_slug} (%{commit}) : %{message}"
              - "Build details: %{build_url}"
        - rooms:
              - secure: "ABC5OwLpwB7L6Ca...."
          on_success: always
          on_failure: never
          template:
              - "%{repository_slug} (%{commit}) : %{message}"
              - "Build details: %{build_url}"

You see here the encrypted string "ABC5OwLpwB7L6Ca....", which I need for adjusting travis configs in yii public repositories.

samdark commented 5 years ago

Your workspace has reached the integration limit

:(

rugabarbo commented 5 years ago

Hmm...

Do we really need all these apps? How to understand which of this can be safely disabled? What is not used? Is it real to understand?

19 10 14-17 47 46

samdark commented 5 years ago

Oh. Wow. I have no idea why all these are enabled :) Thanks for pointing it.

samdark commented 5 years ago

Not sure I've got the tokens correctly but it should be so.

rugabarbo commented 5 years ago

Great :)

Now... for a test we'll take two repositories – one with the last successful build and one with a failed one. 1) https://travis-ci.org/yiisoft/di Build Status 2) https://travis-ci.org/yiisoft/yii-captcha Build Status

In each I'll create a PR with a configuration of notifications. Next, we'll add Travis cronjobs for them and make sure that everything works as intended.

samdark commented 5 years ago

Do you need these merged?

rugabarbo commented 5 years ago

Yes, merge both PRs to the master branch in both repositories.

samdark commented 5 years ago

Done.

rugabarbo commented 5 years ago

Now open two pages: 1) https://travis-ci.com/yiisoft/di/settings 2) https://travis-ci.com/yiisoft/yii-captcha/settings

Find "Cron Jobs" section there.

Add the following schedule for both repositories: 19 10 14-20 34 05

samdark commented 5 years ago

Scheduled.

rugabarbo commented 5 years ago

Hmm ... something strange happened. In Travis, the build history for these repositories has disappeared. 1) https://travis-ci.com/yiisoft/di/builds 2) https://travis-ci.com/yiisoft/yii-captcha/builds

I no longer see a single build on these pages :(

samdark commented 5 years ago

These are at .org (yes, messy): https://travis-ci.org/yiisoft/di/builds

samdark commented 5 years ago

I've set up there as well.

rugabarbo commented 5 years ago

Damn, these Travis domains are some kind of hell :) Now we will wait for a builds on schedule.

samdark commented 5 years ago

I'm thinking more and more about CircleCI...

rugabarbo commented 5 years ago

Two builds ended more than 20 minutes ago:

  1. https://travis-ci.org/yiisoft/di/builds/597764297
  2. https://travis-ci.org/yiisoft/yii-captcha/builds/597764290

But there are no notifications in Slack... So something went wrong. I'll try to understand what the problem is.

I'm thinking more and more about CircleCI...

With the exception of domain confusion, Travis seems to work well :) There are no other objective reasons for changing it...

samdark commented 5 years ago

Well, https://circleci.com/circleci-versus-travisci/

samdark commented 5 years ago

image

rugabarbo commented 5 years ago

Well, https://circleci.com/circleci-versus-travisci/

This is just marketing... We should look at what is really inconvenient for us now in Travis, and not what CircleCI promises in its comparisons :)

samdark commented 5 years ago

The issue with notifications is likely connected with the fact that encrypted tokens are tied to concrete repository (this one). Repository is specified during the generation process. It doesn't seems we can omit it (but there could be a way I haven't seen).

rugabarbo commented 5 years ago

I just programmatically encrypted Slack token without using Travis CI client. Then created PR using this token: https://github.com/yiisoft/yii-captcha/pull/23

Build failed: https://travis-ci.org/yiisoft/yii-captcha/builds/598125538 Notification came to Slack:

image

Thus, the process of generating encrypted tokens for 80 repositories can be automated.

samdark commented 5 years ago

Is it still per-repository token?

rugabarbo commented 5 years ago

Is it still per-repository token?

Yes. It is :) The token can only be generated using the name of the repository.

The process of setting schedules can also be automated: https://developer.travis-ci.org/resource/cron#create

It seems that it’s possible to write a small script that will do everything for us :)

I'll think a little more about it...

rugabarbo commented 5 years ago

Guys, for clarity: I’m going to first deal with task #27, and then implement a console command that can generate Travis cronjobs and encrypted Slack tokens for integration.

rugabarbo commented 4 years ago

@samdark

  1. Merge #57
  2. Update yii-dev-tool locally
  3. Go to Slack and copy Travis CI token
  4. Place the token in file yii-dev-tool/config/travis/slack.local.php (use slack.local.php.example as example)
  5. Prepare the repositories for pushing new things (use updated clean master branch)
  6. Run ./yii-dev travis/update-slack-config --verbose
  7. Push the changes to the repositories
samdark commented 4 years ago

@rugabarbo done.

samdark commented 4 years ago

So now we have notifications. What's left if setting up cronjobs.

samdark commented 4 years ago

Thank you, @rugabarbo.

rugabarbo commented 4 years ago

I have installed a cronjob for all repositories using command ./yii-dev travis/ensure-cronjob (see PR #58).

I had to install both on travis-ci.COM and travis-ci.ORG, because it’s not possible to determine exactly which domain each repository is active on 😞 Mess...

samdark commented 4 years ago

Everything seems to be in place now. Closing.

samdark commented 4 years ago

Thanks, @rugabarbo

rugabarbo commented 4 years ago

@samdark reopen, please.

Builds of repositories, which are located only on domain travis-ci.COM, are launched by cron, but notifications do not come to Slack...

We need to think about why this is happening and fix it.

See details (carefully, there will be a big table and many pictures): Package | travis-ci.COM | travis-ci.ORG | Slack Notification ---|---|---|--- docs | [![Build Status](https://travis-ci.com/yiisoft/docs.svg?branch=master)](https://travis-ci.com/yiisoft/docs) | [![Build Status](https://travis-ci.org/yiisoft/docs.svg?branch=master)](https://travis-ci.org/yiisoft/docs) | di | [![Build Status](https://travis-ci.com/yiisoft/di.svg?branch=master)](https://travis-ci.com/yiisoft/di) | [![Build Status](https://travis-ci.org/yiisoft/di.svg?branch=master)](https://travis-ci.org/yiisoft/di) | βœ” injector | [![Build Status](https://travis-ci.com/yiisoft/injector.svg?branch=master)](https://travis-ci.com/yiisoft/injector) | [![Build Status](https://travis-ci.org/yiisoft/injector.svg?branch=master)](https://travis-ci.org/yiisoft/injector) | factory | [![Build Status](https://travis-ci.com/yiisoft/factory.svg?branch=master)](https://travis-ci.com/yiisoft/factory) | [![Build Status](https://travis-ci.org/yiisoft/factory.svg?branch=master)](https://travis-ci.org/yiisoft/factory) | access | [![Build Status](https://travis-ci.com/yiisoft/access.svg?branch=master)](https://travis-ci.com/yiisoft/access) | [![Build Status](https://travis-ci.org/yiisoft/access.svg?branch=master)](https://travis-ci.org/yiisoft/access) | event-dispatcher | [![Build Status](https://travis-ci.com/yiisoft/event-dispatcher.svg?branch=master)](https://travis-ci.com/yiisoft/event-dispatcher) | [![Build Status](https://travis-ci.org/yiisoft/event-dispatcher.svg?branch=master)](https://travis-ci.org/yiisoft/event-dispatcher) | βœ” security | [![Build Status](https://travis-ci.com/yiisoft/security.svg?branch=master)](https://travis-ci.com/yiisoft/security) | [![Build Status](https://travis-ci.org/yiisoft/security.svg?branch=master)](https://travis-ci.org/yiisoft/security) | data | [![Build Status](https://travis-ci.com/yiisoft/data.svg?branch=master)](https://travis-ci.com/yiisoft/data) | [![Build Status](https://travis-ci.org/yiisoft/data.svg?branch=master)](https://travis-ci.org/yiisoft/data) | profiler | [![Build Status](https://travis-ci.com/yiisoft/profiler.svg?branch=master)](https://travis-ci.com/yiisoft/profiler) | [![Build Status](https://travis-ci.org/yiisoft/profiler.svg?branch=master)](https://travis-ci.org/yiisoft/profiler) | aliases | [![Build Status](https://travis-ci.com/yiisoft/aliases.svg?branch=master)](https://travis-ci.com/yiisoft/aliases) | [![Build Status](https://travis-ci.org/yiisoft/aliases.svg?branch=master)](https://travis-ci.org/yiisoft/aliases) | serializer | [![Build Status](https://travis-ci.com/yiisoft/serializer.svg?branch=master)](https://travis-ci.com/yiisoft/serializer) | [![Build Status](https://travis-ci.org/yiisoft/serializer.svg?branch=master)](https://travis-ci.org/yiisoft/serializer) | network-utilities | [![Build Status](https://travis-ci.com/yiisoft/network-utilities.svg?branch=master)](https://travis-ci.com/yiisoft/network-utilities) | [![Build Status](https://travis-ci.org/yiisoft/network-utilities.svg?branch=master)](https://travis-ci.org/yiisoft/network-utilities) | auth | [![Build Status](https://travis-ci.com/yiisoft/auth.svg?branch=master)](https://travis-ci.com/yiisoft/auth) | [![Build Status](https://travis-ci.org/yiisoft/auth.svg?branch=master)](https://travis-ci.org/yiisoft/auth) | cache | [![Build Status](https://travis-ci.com/yiisoft/cache.svg?branch=master)](https://travis-ci.com/yiisoft/cache) | [![Build Status](https://travis-ci.org/yiisoft/cache.svg?branch=master)](https://travis-ci.org/yiisoft/cache) | βœ” cache-apcu | [![Build Status](https://travis-ci.com/yiisoft/cache-apcu.svg?branch=master)](https://travis-ci.com/yiisoft/cache-apcu) | [![Build Status](https://travis-ci.org/yiisoft/cache-apcu.svg?branch=master)](https://travis-ci.org/yiisoft/cache-apcu) | cache-wincache | [![Build Status](https://travis-ci.com/yiisoft/cache-wincache.svg?branch=master)](https://travis-ci.com/yiisoft/cache-wincache) | [![Build Status](https://travis-ci.org/yiisoft/cache-wincache.svg?branch=master)](https://travis-ci.org/yiisoft/cache-wincache) | cache-file | [![Build Status](https://travis-ci.com/yiisoft/cache-file.svg?branch=master)](https://travis-ci.com/yiisoft/cache-file) | [![Build Status](https://travis-ci.org/yiisoft/cache-file.svg?branch=master)](https://travis-ci.org/yiisoft/cache-file) | cache-db | [![Build Status](https://travis-ci.com/yiisoft/cache-db.svg?branch=master)](https://travis-ci.com/yiisoft/cache-db) | [![Build Status](https://travis-ci.org/yiisoft/cache-db.svg?branch=master)](https://travis-ci.org/yiisoft/cache-db) | rbac | [![Build Status](https://travis-ci.com/yiisoft/rbac.svg?branch=master)](https://travis-ci.com/yiisoft/rbac) | [![Build Status](https://travis-ci.org/yiisoft/rbac.svg?branch=master)](https://travis-ci.org/yiisoft/rbac) | βœ” rbac-db | [![Build Status](https://travis-ci.com/yiisoft/rbac-db.svg?branch=master)](https://travis-ci.com/yiisoft/rbac-db) | [![Build Status](https://travis-ci.org/yiisoft/rbac-db.svg?branch=master)](https://travis-ci.org/yiisoft/rbac-db) | rbac-php | [![Build Status](https://travis-ci.com/yiisoft/rbac-php.svg?branch=master)](https://travis-ci.com/yiisoft/rbac-php) | [![Build Status](https://travis-ci.org/yiisoft/rbac-php.svg?branch=master)](https://travis-ci.org/yiisoft/rbac-php) | log | [![Build Status](https://travis-ci.com/yiisoft/log.svg?branch=master)](https://travis-ci.com/yiisoft/log) | [![Build Status](https://travis-ci.org/yiisoft/log.svg?branch=master)](https://travis-ci.org/yiisoft/log) | βœ” log-target-db | [![Build Status](https://travis-ci.com/yiisoft/log-target-db.svg?branch=master)](https://travis-ci.com/yiisoft/log-target-db) | [![Build Status](https://travis-ci.org/yiisoft/log-target-db.svg?branch=master)](https://travis-ci.org/yiisoft/log-target-db) | βœ” log-target-email | [![Build Status](https://travis-ci.com/yiisoft/log-target-email.svg?branch=master)](https://travis-ci.com/yiisoft/log-target-email) | [![Build Status](https://travis-ci.org/yiisoft/log-target-email.svg?branch=master)](https://travis-ci.org/yiisoft/log-target-email) | βœ” log-target-file | [![Build Status](https://travis-ci.com/yiisoft/log-target-file.svg?branch=master)](https://travis-ci.com/yiisoft/log-target-file) | [![Build Status](https://travis-ci.org/yiisoft/log-target-file.svg?branch=master)](https://travis-ci.org/yiisoft/log-target-file) | βœ” log-target-syslog | [![Build Status](https://travis-ci.com/yiisoft/log-target-syslog.svg?branch=master)](https://travis-ci.com/yiisoft/log-target-syslog) | [![Build Status](https://travis-ci.org/yiisoft/log-target-syslog.svg?branch=master)](https://travis-ci.org/yiisoft/log-target-syslog) | βœ” i18n | [![Build Status](https://travis-ci.com/yiisoft/i18n.svg?branch=master)](https://travis-ci.com/yiisoft/i18n) | [![Build Status](https://travis-ci.org/yiisoft/i18n.svg?branch=master)](https://travis-ci.org/yiisoft/i18n) | βœ” i18n-message-php | [![Build Status](https://travis-ci.com/yiisoft/i18n-message-php.svg?branch=master)](https://travis-ci.com/yiisoft/i18n-message-php) | [![Build Status](https://travis-ci.org/yiisoft/i18n-message-php.svg?branch=master)](https://travis-ci.org/yiisoft/i18n-message-php) | βœ” i18n-message-gettext | [![Build Status](https://travis-ci.com/yiisoft/i18n-message-gettext.svg?branch=master)](https://travis-ci.com/yiisoft/i18n-message-gettext) | [![Build Status](https://travis-ci.org/yiisoft/i18n-message-gettext.svg?branch=master)](https://travis-ci.org/yiisoft/i18n-message-gettext) | βœ” i18n-formatter-intl | [![Build Status](https://travis-ci.com/yiisoft/i18n-formatter-intl.svg?branch=master)](https://travis-ci.com/yiisoft/i18n-formatter-intl) | [![Build Status](https://travis-ci.org/yiisoft/i18n-formatter-intl.svg?branch=master)](https://travis-ci.org/yiisoft/i18n-formatter-intl) | βœ” yii-queue | [![Build Status](https://travis-ci.com/yiisoft/yii-queue.svg?branch=master)](https://travis-ci.com/yiisoft/yii-queue) | [![Build Status](https://travis-ci.org/yiisoft/yii-queue.svg?branch=master)](https://travis-ci.org/yiisoft/yii-queue) | βœ” yii-queue-interop | [![Build Status](https://travis-ci.com/yiisoft/yii-queue-interop.svg?branch=master)](https://travis-ci.com/yiisoft/yii-queue-interop) | [![Build Status](https://travis-ci.org/yiisoft/yii-queue-interop.svg?branch=master)](https://travis-ci.org/yiisoft/yii-queue-interop) | mutex | [![Build Status](https://travis-ci.com/yiisoft/mutex.svg?branch=master)](https://travis-ci.com/yiisoft/mutex) | [![Build Status](https://travis-ci.org/yiisoft/mutex.svg?branch=master)](https://travis-ci.org/yiisoft/mutex) | mutex-file | [![Build Status](https://travis-ci.com/yiisoft/mutex-file.svg?branch=master)](https://travis-ci.com/yiisoft/mutex-file) | [![Build Status](https://travis-ci.org/yiisoft/mutex-file.svg?branch=master)](https://travis-ci.org/yiisoft/mutex-file) | βœ” mutex-db-pgsql | [![Build Status](https://travis-ci.com/yiisoft/mutex-db-pgsql.svg?branch=master)](https://travis-ci.com/yiisoft/mutex-db-pgsql) | [![Build Status](https://travis-ci.org/yiisoft/mutex-db-pgsql.svg?branch=master)](https://travis-ci.org/yiisoft/mutex-db-pgsql) | βœ” mutex-db-oracle | [![Build Status](https://travis-ci.com/yiisoft/mutex-db-oracle.svg?branch=master)](https://travis-ci.com/yiisoft/mutex-db-oracle) | [![Build Status](https://travis-ci.org/yiisoft/mutex-db-oracle.svg?branch=master)](https://travis-ci.org/yiisoft/mutex-db-oracle) | βœ” mutex-db-mysql | [![Build Status](https://travis-ci.com/yiisoft/mutex-db-mysql.svg?branch=master)](https://travis-ci.com/yiisoft/mutex-db-mysql) | [![Build Status](https://travis-ci.org/yiisoft/mutex-db-mysql.svg?branch=master)](https://travis-ci.org/yiisoft/mutex-db-mysql) | βœ” mailer | [![Build Status](https://travis-ci.com/yiisoft/mailer.svg?branch=master)](https://travis-ci.com/yiisoft/mailer) | [![Build Status](https://travis-ci.org/yiisoft/mailer.svg?branch=master)](https://travis-ci.org/yiisoft/mailer) | βœ” mailer-swiftmailer | [![Build Status](https://travis-ci.com/yiisoft/mailer-swiftmailer.svg?branch=master)](https://travis-ci.com/yiisoft/mailer-swiftmailer) | [![Build Status](https://travis-ci.org/yiisoft/mailer-swiftmailer.svg?branch=master)](https://travis-ci.org/yiisoft/mailer-swiftmailer) | βœ” arrays | [![Build Status](https://travis-ci.com/yiisoft/arrays.svg?branch=master)](https://travis-ci.com/yiisoft/arrays) | [![Build Status](https://travis-ci.org/yiisoft/arrays.svg?branch=master)](https://travis-ci.org/yiisoft/arrays) | βœ” strings | [![Build Status](https://travis-ci.com/yiisoft/strings.svg?branch=master)](https://travis-ci.com/yiisoft/strings) | [![Build Status](https://travis-ci.org/yiisoft/strings.svg?branch=master)](https://travis-ci.org/yiisoft/strings) | βœ” files | [![Build Status](https://travis-ci.com/yiisoft/files.svg?branch=master)](https://travis-ci.com/yiisoft/files) | [![Build Status](https://travis-ci.org/yiisoft/files.svg?branch=master)](https://travis-ci.org/yiisoft/files) | var-dumper | [![Build Status](https://travis-ci.com/yiisoft/var-dumper.svg?branch=master)](https://travis-ci.com/yiisoft/var-dumper) | [![Build Status](https://travis-ci.org/yiisoft/var-dumper.svg?branch=master)](https://travis-ci.org/yiisoft/var-dumper) | html | [![Build Status](https://travis-ci.com/yiisoft/html.svg?branch=master)](https://travis-ci.com/yiisoft/html) | [![Build Status](https://travis-ci.org/yiisoft/html.svg?branch=master)](https://travis-ci.org/yiisoft/html) | json | [![Build Status](https://travis-ci.com/yiisoft/json.svg?branch=master)](https://travis-ci.com/yiisoft/json) | [![Build Status](https://travis-ci.org/yiisoft/json.svg?branch=master)](https://travis-ci.org/yiisoft/json) | yii-console | [![Build Status](https://travis-ci.com/yiisoft/yii-console.svg?branch=master)](https://travis-ci.com/yiisoft/yii-console) | [![Build Status](https://travis-ci.org/yiisoft/yii-console.svg?branch=master)](https://travis-ci.org/yiisoft/yii-console) | βœ” yii-rest | [![Build Status](https://travis-ci.com/yiisoft/yii-rest.svg?branch=master)](https://travis-ci.com/yiisoft/yii-rest) | [![Build Status](https://travis-ci.org/yiisoft/yii-rest.svg?branch=master)](https://travis-ci.org/yiisoft/yii-rest) | βœ” db | [![Build Status](https://travis-ci.com/yiisoft/db.svg?branch=master)](https://travis-ci.com/yiisoft/db) | [![Build Status](https://travis-ci.org/yiisoft/db.svg?branch=master)](https://travis-ci.org/yiisoft/db) | βœ” db-mysql | [![Build Status](https://travis-ci.com/yiisoft/db-mysql.svg?branch=master)](https://travis-ci.com/yiisoft/db-mysql) | [![Build Status](https://travis-ci.org/yiisoft/db-mysql.svg?branch=master)](https://travis-ci.org/yiisoft/db-mysql) | βœ” db-pgsql | [![Build Status](https://travis-ci.com/yiisoft/db-pgsql.svg?branch=master)](https://travis-ci.com/yiisoft/db-pgsql) | [![Build Status](https://travis-ci.org/yiisoft/db-pgsql.svg?branch=master)](https://travis-ci.org/yiisoft/db-pgsql) | βœ” db-sqlite | [![Build Status](https://travis-ci.com/yiisoft/db-sqlite.svg?branch=master)](https://travis-ci.com/yiisoft/db-sqlite) | [![Build Status](https://travis-ci.org/yiisoft/db-sqlite.svg?branch=master)](https://travis-ci.org/yiisoft/db-sqlite) | βœ” db-mssql | [![Build Status](https://travis-ci.com/yiisoft/db-mssql.svg?branch=master)](https://travis-ci.com/yiisoft/db-mssql) | [![Build Status](https://travis-ci.org/yiisoft/db-mssql.svg?branch=master)](https://travis-ci.org/yiisoft/db-mssql) | db-oracle | [![Build Status](https://travis-ci.com/yiisoft/db-oracle.svg?branch=master)](https://travis-ci.com/yiisoft/db-oracle) | [![Build Status](https://travis-ci.org/yiisoft/db-oracle.svg?branch=master)](https://travis-ci.org/yiisoft/db-oracle) | db-mongodb | [![Build Status](https://travis-ci.com/yiisoft/db-mongodb.svg?branch=master)](https://travis-ci.com/yiisoft/db-mongodb) | [![Build Status](https://travis-ci.org/yiisoft/db-mongodb.svg?branch=master)](https://travis-ci.org/yiisoft/db-mongodb) | βœ” active-record | [![Build Status](https://travis-ci.com/yiisoft/active-record.svg?branch=master)](https://travis-ci.com/yiisoft/active-record) | [![Build Status](https://travis-ci.org/yiisoft/active-record.svg?branch=master)](https://travis-ci.org/yiisoft/active-record) | βœ” yii-cycle | [![Build Status](https://travis-ci.com/yiisoft/yii-cycle.svg?branch=master)](https://travis-ci.com/yiisoft/yii-cycle) | [![Build Status](https://travis-ci.org/yiisoft/yii-cycle.svg?branch=master)](https://travis-ci.org/yiisoft/yii-cycle) | router | [![Build Status](https://travis-ci.com/yiisoft/router.svg?branch=master)](https://travis-ci.com/yiisoft/router) | [![Build Status](https://travis-ci.org/yiisoft/router.svg?branch=master)](https://travis-ci.org/yiisoft/router) | router-fastroute | [![Build Status](https://travis-ci.com/yiisoft/router-fastroute.svg?branch=master)](https://travis-ci.com/yiisoft/router-fastroute) | [![Build Status](https://travis-ci.org/yiisoft/router-fastroute.svg?branch=master)](https://travis-ci.org/yiisoft/router-fastroute) | yii-web | [![Build Status](https://travis-ci.com/yiisoft/yii-web.svg?branch=master)](https://travis-ci.com/yiisoft/yii-web) | [![Build Status](https://travis-ci.org/yiisoft/yii-web.svg?branch=master)](https://travis-ci.org/yiisoft/yii-web) | βœ” view | [![Build Status](https://travis-ci.com/yiisoft/view.svg?branch=master)](https://travis-ci.com/yiisoft/view) | [![Build Status](https://travis-ci.org/yiisoft/view.svg?branch=master)](https://travis-ci.org/yiisoft/view) | βœ” yii-jquery | [![Build Status](https://travis-ci.com/yiisoft/yii-jquery.svg?branch=master)](https://travis-ci.com/yiisoft/yii-jquery) | [![Build Status](https://travis-ci.org/yiisoft/yii-jquery.svg?branch=master)](https://travis-ci.org/yiisoft/yii-jquery) | βœ” yii-masked-input | [![Build Status](https://travis-ci.com/yiisoft/yii-masked-input.svg?branch=master)](https://travis-ci.com/yiisoft/yii-masked-input) | [![Build Status](https://travis-ci.org/yiisoft/yii-masked-input.svg?branch=master)](https://travis-ci.org/yiisoft/yii-masked-input) | βœ” yii-dataview | [![Build Status](https://travis-ci.com/yiisoft/yii-dataview.svg?branch=master)](https://travis-ci.com/yiisoft/yii-dataview) | [![Build Status](https://travis-ci.org/yiisoft/yii-dataview.svg?branch=master)](https://travis-ci.org/yiisoft/yii-dataview) | yii-debug | [![Build Status](https://travis-ci.com/yiisoft/yii-debug.svg?branch=master)](https://travis-ci.com/yiisoft/yii-debug) | [![Build Status](https://travis-ci.org/yiisoft/yii-debug.svg?branch=master)](https://travis-ci.org/yiisoft/yii-debug) | βœ” yii-gii | [![Build Status](https://travis-ci.com/yiisoft/yii-gii.svg?branch=master)](https://travis-ci.com/yiisoft/yii-gii) | [![Build Status](https://travis-ci.org/yiisoft/yii-gii.svg?branch=master)](https://travis-ci.org/yiisoft/yii-gii) | βœ” yii-bootstrap4 | [![Build Status](https://travis-ci.com/yiisoft/yii-bootstrap4.svg?branch=master)](https://travis-ci.com/yiisoft/yii-bootstrap4) | [![Build Status](https://travis-ci.org/yiisoft/yii-bootstrap4.svg?branch=master)](https://travis-ci.org/yiisoft/yii-bootstrap4) | βœ” yii-captcha | [![Build Status](https://travis-ci.com/yiisoft/yii-captcha.svg?branch=master)](https://travis-ci.com/yiisoft/yii-captcha) | [![Build Status](https://travis-ci.org/yiisoft/yii-captcha.svg?branch=master)](https://travis-ci.org/yiisoft/yii-captcha) | βœ” yii-auth-client | [![Build Status](https://travis-ci.com/yiisoft/yii-auth-client.svg?branch=master)](https://travis-ci.com/yiisoft/yii-auth-client) | [![Build Status](https://travis-ci.org/yiisoft/yii-auth-client.svg?branch=master)](https://travis-ci.org/yiisoft/yii-auth-client) | βœ” yii-base-api | [![Build Status](https://travis-ci.com/yiisoft/yii-base-api.svg?branch=master)](https://travis-ci.com/yiisoft/yii-base-api) | [![Build Status](https://travis-ci.org/yiisoft/yii-base-api.svg?branch=master)](https://travis-ci.org/yiisoft/yii-base-api) | βœ” yii-base-web | [![Build Status](https://travis-ci.com/yiisoft/yii-base-web.svg?branch=master)](https://travis-ci.com/yiisoft/yii-base-web) | [![Build Status](https://travis-ci.org/yiisoft/yii-base-web.svg?branch=master)](https://travis-ci.org/yiisoft/yii-base-web) | βœ” yii-project-template | [![Build Status](https://travis-ci.com/yiisoft/yii-project-template.svg?branch=master)](https://travis-ci.com/yiisoft/yii-project-template) | [![Build Status](https://travis-ci.org/yiisoft/yii-project-template.svg?branch=master)](https://travis-ci.org/yiisoft/yii-project-template) | βœ” yii-demo | [![Build Status](https://travis-ci.com/yiisoft/yii-demo.svg?branch=master)](https://travis-ci.com/yiisoft/yii-demo) | [![Build Status](https://travis-ci.org/yiisoft/yii-demo.svg?branch=master)](https://travis-ci.org/yiisoft/yii-demo) | yii-docker | [![Build Status](https://travis-ci.com/yiisoft/yii-docker.svg?branch=master)](https://travis-ci.com/yiisoft/yii-docker) | [![Build Status](https://travis-ci.org/yiisoft/yii-docker.svg?branch=master)](https://travis-ci.org/yiisoft/yii-docker) | validator | [![Build Status](https://travis-ci.com/yiisoft/validator.svg?branch=master)](https://travis-ci.com/yiisoft/validator) | [![Build Status](https://travis-ci.org/yiisoft/validator.svg?branch=master)](https://travis-ci.org/yiisoft/validator) | βœ” friendly-exception | [![Build Status](https://travis-ci.com/yiisoft/friendly-exception.svg?branch=master)](https://travis-ci.com/yiisoft/friendly-exception) | [![Build Status](https://travis-ci.org/yiisoft/friendly-exception.svg?branch=master)](https://travis-ci.org/yiisoft/friendly-exception) | template | [![Build Status](https://travis-ci.com/yiisoft/template.svg?branch=master)](https://travis-ci.com/yiisoft/template) | [![Build Status](https://travis-ci.org/yiisoft/template.svg?branch=master)](https://travis-ci.org/yiisoft/template) | requirements | [![Build Status](https://travis-ci.com/yiisoft/requirements.svg?branch=master)](https://travis-ci.com/yiisoft/requirements) | [![Build Status](https://travis-ci.org/yiisoft/requirements.svg?branch=master)](https://travis-ci.org/yiisoft/requirements) |
samdark commented 4 years ago

Arrgh. That's a mess with .com and .org :(

rugabarbo commented 4 years ago

Keep calm :)

I have found a reason. For travis-ci.COM, we need to get the keys differently during Slack token encryption: https://docs.travis-ci.com/user/encryption-keys/#obtaining-the-public-keys

I'll fix it.

samdark commented 4 years ago

I can migrate everything to .com so it will be consistent. They finally have migration procedure available.

rugabarbo commented 4 years ago

I can write a small console command for automatic migration. Travis API provides the ability to start migration: https://developer.travis-ci.com/resource/repository#migrate

How difficult is it to migrate everything manually? Is it possible to migrate everything with one click? If it’s difficult to migrate manually, it will only take me 10 minutes to write a command and start the migration using Travis API.

samdark commented 4 years ago

How difficult is it to migrate everything manually? Is it possible to migrate everything with one click?

Yes.

samdark commented 4 years ago

Migrated.

rugabarbo commented 4 years ago

@samdark

  1. Merge #59
  2. Update yii-dev-tool locally
  3. Generate and copy Travis API token for travis-ci.COM
  4. Place the token in file yii-dev-tool/config/travis/api.local.php (use api.local.php.example as example)
  5. Prepare the repositories for pushing new things (use updated clean master branch)
  6. Run ./yii-dev travis/update-slack-config --verbose
  7. Push the changes to the repositories

Pay attention, now in steps 3 and 4 you need tokens specifically for Travis API, not for Slack. Leave Slack token the same as it was!

samdark commented 4 years ago

All done but it seems there are problems:

samdark commented 4 years ago

I'll handle .org issue separately. Slack works well. Thank you again for preparing all that.