Compare commits
No commits in common. "master" and "ce_upgrade_ember_cli" have entirely different histories.
master
...
ce_upgrade
|
@ -19,8 +19,12 @@ var App = Ember.Application.extend(Ember.Evented, {
|
|||
podModulePrefix: config.podModulePrefix,
|
||||
Resolver: Resolver,
|
||||
|
||||
lookup() {
|
||||
return this.__container__.lookup.apply(this.__container__, arguments);
|
||||
},
|
||||
|
||||
flash(options) {
|
||||
return Ember.getOwner(Travis).lookup('controller:flash').loadFlashes([options]);
|
||||
return Travis.lookup('controller:flash').loadFlashes([options]);
|
||||
},
|
||||
|
||||
toggleSidebar() {
|
||||
|
|
|
@ -11,7 +11,7 @@ export default Ember.Controller.extend({
|
|||
var user;
|
||||
if ((user = this.get('model')) && user.get('isSyncing') && !user.get('syncedAt')) {
|
||||
return Ember.run.scheduleOnce('routerTransitions', this, function() {
|
||||
return Ember.getOwner(this).lookup('router:main').send('renderFirstSync');
|
||||
return this.container.lookup('router:main').send('renderFirstSync');
|
||||
});
|
||||
}
|
||||
}.observes('isSyncing', 'auth.currentUser')
|
||||
|
|
|
@ -76,7 +76,7 @@ var Controller = Ember.Controller.extend({
|
|||
possiblyRedirectToGettingStartedPage() {
|
||||
return Ember.run.scheduleOnce('routerTransitions', this, function() {
|
||||
if (this.get('tab') === 'owned' && this.get('isLoaded') && this.get('repos.length') === 0) {
|
||||
return Ember.getOwner(this).lookup('router:main').send('redirectToGettingStarted');
|
||||
return this.container.lookup('router:main').send('redirectToGettingStarted');
|
||||
}
|
||||
});
|
||||
},
|
||||
|
|
|
@ -2,6 +2,5 @@ import { timeAgoInWords, safe } from 'travis/utils/helpers';
|
|||
import Ember from "ember";
|
||||
|
||||
export default Ember.Helper.helper(function(params) {
|
||||
let date = new Date(params[0]);
|
||||
return safe(moment(date).format('MMMM D, YYYY H:mm:ss') || '-');
|
||||
return safe(moment(params[0]).format('MMMM D, YYYY H:mm:ss') || '-');
|
||||
});
|
||||
|
|
|
@ -2,15 +2,16 @@ import config from 'travis/config/environment';
|
|||
import TravisPusher from 'travis/utils/pusher';
|
||||
var PusherInitializer, initialize;
|
||||
|
||||
initialize = function(applicationInstance) {
|
||||
const app = applicationInstance.application;
|
||||
initialize = function(data) {
|
||||
var application;
|
||||
application = data.application;
|
||||
if (config.pusher.key) {
|
||||
app.pusher = new TravisPusher(config.pusher, applicationInstance.lookup('service:ajax'));
|
||||
app.register('pusher:main', app.pusher, {
|
||||
application.pusher = new TravisPusher(config.pusher, data.container.lookup('service:ajax'));
|
||||
application.register('pusher:main', application.pusher, {
|
||||
instantiate: false
|
||||
});
|
||||
app.inject('route', 'pusher', 'pusher:main');
|
||||
return app.pusher.store = applicationInstance.lookup('service:store');
|
||||
application.inject('route', 'pusher', 'pusher:main');
|
||||
return application.pusher.store = data.container.lookup('service:store');
|
||||
}
|
||||
};
|
||||
|
||||
|
|
|
@ -30,7 +30,7 @@ var Broadcast = Model.extend({
|
|||
Broadcast.reopenClass({
|
||||
seen: function() {
|
||||
var seenBroadcasts;
|
||||
seenBroadcasts = Ember.getOwner(Travis).lookup('service:storage').getItem('travis.seen_broadcasts');
|
||||
seenBroadcasts = Travis.lookup('service:storage').getItem('travis.seen_broadcasts');
|
||||
if (seenBroadcasts != null) {
|
||||
seenBroadcasts = JSON.parse(seenBroadcasts);
|
||||
}
|
||||
|
|
|
@ -14,7 +14,7 @@ var Router = Ember.Router.extend({
|
|||
// we should probably think about a more general way to
|
||||
// do this, location should not know about auth status
|
||||
return Location.create({
|
||||
auth: Ember.getOwner(this).lookup('service:auth')
|
||||
auth: this.container.lookup('service:auth')
|
||||
});
|
||||
}
|
||||
}.property(),
|
||||
|
|
|
@ -1,7 +1,6 @@
|
|||
import TravisRoute from 'travis/routes/basic';
|
||||
import config from 'travis/config/environment';
|
||||
import BuildFaviconMixin from 'travis/mixins/build-favicon';
|
||||
import Ember from 'ember';
|
||||
|
||||
export default TravisRoute.extend(BuildFaviconMixin, {
|
||||
needsAuth: false,
|
||||
|
@ -100,7 +99,7 @@ export default TravisRoute.extend(BuildFaviconMixin, {
|
|||
error(error) {
|
||||
var authController;
|
||||
if (error === 'needs-auth') {
|
||||
authController = Ember.getOwner(this).lookup('controller:auth');
|
||||
authController = this.container.lookup('controller:auth');
|
||||
authController.set('redirected', true);
|
||||
return this.transitionTo('auth');
|
||||
} else {
|
||||
|
|
|
@ -1,8 +1,7 @@
|
|||
import TravisRoute from 'travis/routes/basic';
|
||||
import Ember from 'ember';
|
||||
|
||||
export default TravisRoute.extend({
|
||||
setupController(controller) {
|
||||
return Ember.getOwner(this).lookup('controller:repos').activate('owned');
|
||||
return this.container.lookup('controller:repos').activate('owned');
|
||||
}
|
||||
});
|
||||
|
|
|
@ -17,7 +17,7 @@ export default TravisRoute.extend(ScrollResetMixin, {
|
|||
},
|
||||
|
||||
setupController(controller, model) {
|
||||
this.controllerFor('repos').activate('owned');
|
||||
this.container.lookup('controller:repos').activate('owned');
|
||||
if (model && !model.get) {
|
||||
model = this.get('store').find('repo', model.id);
|
||||
}
|
||||
|
|
|
@ -3,7 +3,7 @@ import TravisRoute from 'travis/routes/basic';
|
|||
export default TravisRoute.extend({
|
||||
setupController: function() {
|
||||
$('body').attr('id', 'simple');
|
||||
this.controllerFor('repos').activate('owned');
|
||||
this.container.lookup('controller:repos').activate('owned');
|
||||
return this._super.apply(this, arguments);
|
||||
},
|
||||
renderTemplate: function() {
|
||||
|
|
|
@ -172,12 +172,6 @@ export default TravisRoute.extend({
|
|||
nationality: 'italy',
|
||||
country: 'austria',
|
||||
image: 'laura'
|
||||
}, {
|
||||
name: 'Maren Brechler',
|
||||
title: 'Number Juggler',
|
||||
nationality: 'germany',
|
||||
country: 'germany',
|
||||
image: 'maren'
|
||||
}, {
|
||||
name: 'Ana Rosas',
|
||||
title: 'Software Baker',
|
||||
|
@ -185,20 +179,6 @@ export default TravisRoute.extend({
|
|||
nationality: 'mexico',
|
||||
country: 'mexico',
|
||||
image: 'ana'
|
||||
}, {
|
||||
name: 'Igor Wiedler',
|
||||
title: 'webmaster',
|
||||
handle: 'igorwhilefalse',
|
||||
nationality: 'ukswitzerland',
|
||||
country: 'germany',
|
||||
image: 'igor'
|
||||
}, {
|
||||
name: 'Carmen Andoh',
|
||||
title: 'SRE- Snazzy Rsync Empress',
|
||||
handle: 'caelestisca',
|
||||
nationality: 'usa',
|
||||
country: 'usa',
|
||||
image: 'carmen'
|
||||
}
|
||||
];
|
||||
}
|
||||
|
|
|
@ -64,7 +64,7 @@ export default Ember.Service.extend({
|
|||
success = options.success || (function() {});
|
||||
options.success = (data, status, xhr) => {
|
||||
if (data != null ? data.flash : void 0) {
|
||||
Ember.getOwner(Travis).lookup('controller:flash').loadFlashes(data.flash);
|
||||
Travis.lookup('controller:flash').loadFlashes(data.flash);
|
||||
}
|
||||
if (data != null) {
|
||||
delete data.flash;
|
||||
|
@ -75,7 +75,7 @@ export default Ember.Service.extend({
|
|||
options.error = (data, status, xhr) => {
|
||||
console.log("[ERROR] API responded with an error (" + status + "): " + (JSON.stringify(data)));
|
||||
if (data != null ? data.flash : void 0) {
|
||||
Ember.getOwner(Travis).lookup('controller:flash').pushObject(data.flash);
|
||||
Travis.lookup('controller:flash').pushObject(data.flash);
|
||||
}
|
||||
if (data != null) {
|
||||
delete data.flash;
|
||||
|
|
|
@ -214,7 +214,7 @@ export default Ember.Service.extend({
|
|||
// as a direct response to either manual sign in or autoSignIn (right now
|
||||
// we treat both cases behave the same in terms of sent events which I think
|
||||
// makes it more complicated than it should be).
|
||||
router = Ember.getOwner(this).lookup('router:main');
|
||||
router = this.container.lookup('router:main');
|
||||
try {
|
||||
return router.send(name);
|
||||
} catch (error1) {
|
||||
|
|
|
@ -16,9 +16,8 @@
|
|||
background-color: $oxide-blue
|
||||
.sync-last
|
||||
position: absolute
|
||||
right: 9em
|
||||
left: -15em
|
||||
top: 0
|
||||
width: 170%
|
||||
z-index: -1
|
||||
transition: transform 150ms ease, opacity 250ms ease
|
||||
transform: translateX(80%)
|
||||
|
|
|
@ -3,17 +3,18 @@
|
|||
max-width: 900px
|
||||
margin: auto
|
||||
h1
|
||||
color: $cement-grey
|
||||
color: #808080
|
||||
font-size: 36px
|
||||
margin-bottom: 1em
|
||||
font-weight: 300
|
||||
line-height: 1.1
|
||||
h2
|
||||
color: $turf-green
|
||||
color: #35a764
|
||||
font-size: 22px
|
||||
margin-bottom: 1em
|
||||
font-weight: 300
|
||||
p, li
|
||||
color: #666
|
||||
font-size: $font-size-m
|
||||
line-height: 25px
|
||||
|
||||
|
@ -75,3 +76,10 @@
|
|||
strong
|
||||
text-transform: uppercase
|
||||
font-style: normal
|
||||
|
||||
.note--info
|
||||
background-color: #e7eeee
|
||||
color: #3e8987
|
||||
code
|
||||
color: #267c8d
|
||||
background-color: white
|
||||
|
|
|
@ -11,14 +11,14 @@
|
|||
background-color: #ffffff
|
||||
background-image: inline-image('landing-page/signingithub.svg')
|
||||
background-size: 16px 16px
|
||||
border: 2px solid rgba($cement-grey, .4)
|
||||
color: $cement-grey
|
||||
border: 2px solid #e4e7e7
|
||||
color: #a0a8a8
|
||||
.button--signingin
|
||||
border: 2px solid $turf-green
|
||||
border: 2px solid #3FA75F
|
||||
.button--signin:hover
|
||||
background-color: $turf-green
|
||||
background-color: #73c78d
|
||||
background-image: inline-image('landing-page/signingithub-hover.svg')
|
||||
border: 2px solid $turf-green
|
||||
border: 2px solid #73c78d
|
||||
color: #fff
|
||||
|
||||
.landing-centered-wrapper
|
||||
|
@ -37,7 +37,7 @@
|
|||
font-size: 5em
|
||||
line-height: 1em
|
||||
font-weight: 300
|
||||
color: $cement-grey
|
||||
color: #8f9294
|
||||
margin-bottom: 0
|
||||
|
||||
.hero, .oss-testing, .customers, .recent-builds, .free-for-oss, .private-repos, .features-list, .build-flows, .user-testimonials
|
||||
|
@ -52,7 +52,7 @@
|
|||
font-size: 3.3em
|
||||
line-height: 1.15em
|
||||
font-weight: 300
|
||||
color: $turf-green
|
||||
color: #39a85b
|
||||
|
||||
p
|
||||
line-height: 1.5em
|
||||
|
@ -129,11 +129,7 @@
|
|||
|
||||
br.mobile-break
|
||||
display: none
|
||||
.os-numbers
|
||||
width: 80%
|
||||
@media #{$medium-up}
|
||||
width: 60%
|
||||
|
||||
|
||||
.customers
|
||||
text-align: center
|
||||
|
||||
|
|
|
@ -43,11 +43,11 @@ $color-bg-log-fold-highlight: #777
|
|||
$ansi-black: #4E4E4E
|
||||
$ansi-black-bold: #7C7C7C
|
||||
$ansi-red: #FF6C60
|
||||
$ansi-red-bold: #FF9B93
|
||||
$ansi-red-bold: #FFB6B0
|
||||
$ansi-green: #00AA00
|
||||
$ansi-green-bold: #B1FD79
|
||||
$ansi-green-bold: #CEFFAB
|
||||
$ansi-yellow: #FFFFB6
|
||||
$ansi-yellow-bold: #FFFF91
|
||||
$ansi-yellow-bold: #FFFFCB
|
||||
$ansi-blue: #96CBFE
|
||||
$ansi-blue-bold: #B5DCFE
|
||||
$ansi-magenta: #FF73FD
|
||||
|
|
|
@ -1,7 +1,6 @@
|
|||
{{#if allHooks.isLoaded}}
|
||||
|
||||
<header>
|
||||
{{#unless config.enterprise}}
|
||||
<header>
|
||||
{{#if config.billingEndpoint}}
|
||||
<div class="cta-btn">
|
||||
{{#if subscribeButtonInfo.subscribed}}
|
||||
|
@ -15,7 +14,6 @@
|
|||
{{/if}}
|
||||
</div>
|
||||
{{/if}}
|
||||
{{/unless}}
|
||||
|
||||
<div class="profile-header">
|
||||
<h1>{{accountName}}</h1>
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
<figure class="team-image">
|
||||
<img class="front" src="../images/team/team-{{member.image}}.png" alt="{{member.name}}">
|
||||
<img class="back" src="../images/team/{{member.image}}-animated.gif" alt="{{member.name}} gif">
|
||||
<img class="front" src="../images/team/team-{{member.image}}.png" alt="">
|
||||
<img class="back" src="../images/team/{{member.image}}-animated.gif" alt="">
|
||||
</figure>
|
||||
<h3 class="team-name">{{member.name}}</h3>
|
||||
<p class="team-title">{{member.title}}</p>
|
||||
|
@ -8,7 +8,7 @@
|
|||
<p class="team-handle"><a href="https://twitter.com/{{member.handle}}" title="{{member.name}} on Twitter">@{{member.handle}}</a></p>
|
||||
{{/if}}
|
||||
<div class="team-flags">
|
||||
<img src="../images/pro-landing/flag-{{member.nationality}}.svg" alt="flag {{member.nationality}}" title="is from {{member.nationality}}">
|
||||
<img src="../images/pro-landing/flag-{{member.nationality}}.svg" alt="flag {{member.nationality}}">
|
||||
<span class="flag-divider">/</span>
|
||||
<img src="../images/pro-landing/flag-{{member.country}}.svg" alt="flag {{member.country}}" title="lives in {{member.country}}">
|
||||
<img src="../images/pro-landing/flag-{{member.country}}.svg" alt="flag {{member.country}}">
|
||||
</div>
|
||||
|
|
|
@ -22,6 +22,9 @@
|
|||
<h2>Add .travis.yml file to your repository</h2>
|
||||
<p>In order for Travis CI to build your project, you need to tell the systems a little bit about it. You'll need to add a file named .travis.yml to the root of your repository.</p>
|
||||
<p>If .travis.yml is not in the repository, is misspelled or is not valid YAML, Travis CI will ignore it.</p>
|
||||
<p class="note note--info">
|
||||
<strong>Note:</strong> The <code>language</code> value is case-sensitive. If you set <code>language: C</code>, for example, your project will be considered a Ruby project.
|
||||
</p>
|
||||
<p>Here you can find some of our basic <a href="http://docs.travis-ci.com/user/language-specific/" title="">language examples</a>.</p>
|
||||
</div>
|
||||
</li>
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
{{#travis-layout layoutName="layouts/landing-page"}}
|
||||
<div id="landing" class="landing">
|
||||
<div class="row hero z-1">
|
||||
<section class="landing-centered-wrapper">
|
||||
<div class="landing-centered-wrapper">
|
||||
<div class="large-12 columns" id="hero-copy">
|
||||
<h1>Test and Deploy with Confidence</h1>
|
||||
<p>Easily sync your GitHub projects with Travis CI<br class="mobile-break"> and you’ll be testing your code in minutes!</p>
|
||||
|
@ -16,26 +16,26 @@
|
|||
</div>
|
||||
<div class="large-12 columns laptop-wrapper">
|
||||
<div id="laptop">
|
||||
<img src="../images/landing-page/laptop.png" alt="Travis CI screenshot">
|
||||
<img src="../images/landing-page/laptop.png">
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row oss-testing">
|
||||
<section class="landing-centered-wrapper">
|
||||
<div class="landing-centered-wrapper">
|
||||
<div class="large-12 columns">
|
||||
<h2>The home of<br class="mobile-break"> open source testing</h2>
|
||||
<p>Over 300k open source projects<br class="mobile-break"> and 235k users are testing on Travis CI.</p>
|
||||
<img src="../images/landing-page/customer-numbers.svg" alt="Open source project numbers" class="os-numbers">
|
||||
<p>Over 300k Open Source projects<br class="mobile-break"> and 235k users are testing on Travis CI.</p>
|
||||
<img src="../images/landing-page/customer-numbers.svg" alt="318399 projects" class="os-numbers">
|
||||
</div>
|
||||
</section>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row customers">
|
||||
<div class="landing-centered-wrapper">
|
||||
<div class="medium-6 columns">
|
||||
<img src="../images/landing-page/customers-temp-together.svg" alt="customer logos">
|
||||
<img src="../images/landing-page/customers-temp-together.svg">
|
||||
</div>
|
||||
<div class="medium-6 columns">
|
||||
<p class="left">Some pretty awesome companies<br> and projects are using us.</p>
|
||||
|
@ -44,16 +44,16 @@
|
|||
</div>
|
||||
|
||||
<div class="row free-for-oss">
|
||||
<section class="landing-centered-wrapper">
|
||||
<div class="landing-centered-wrapper">
|
||||
<div class="large-12 columns">
|
||||
<h1>Testing your open source<br class="mobile-no-break"> project is 10000% free</h1>
|
||||
<p><span class="bold-italic">Seriously. Always.</span> We like to think of it as our way of giving<br>back to a community that gives us so much as well.</p>
|
||||
</div>
|
||||
</section>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row private-repos">
|
||||
<section class="landing-centered-wrapper">
|
||||
<div class="landing-centered-wrapper">
|
||||
<div class="medium-6 columns mobile-envelope">
|
||||
<img src="../images/landing-page/envelope.svg">
|
||||
</div>
|
||||
|
@ -65,13 +65,13 @@
|
|||
</div>
|
||||
</div>
|
||||
<div class="medium-6 columns desktop-envelope">
|
||||
<img src="../images/landing-page/envelope.svg" alt="envelope">
|
||||
<img src="../images/landing-page/envelope.svg">
|
||||
</div>
|
||||
</section>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row features-list">
|
||||
<section class="landing-centered-wrapper">
|
||||
<div class="landing-centered-wrapper">
|
||||
<div class="large-6 columns features-callouts">
|
||||
<div class="landing-vert-center-s">
|
||||
<div class="medium-6 columns">
|
||||
|
@ -105,16 +105,16 @@
|
|||
<li>Did we say free for Open Source already?</li>
|
||||
</ul>
|
||||
</div>
|
||||
</section>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row build-flows">
|
||||
<section class="landing-centered-wrapper">
|
||||
<div class="landing-centered-wrapper">
|
||||
<div class="large-12 columns">
|
||||
<h2>Branch build flow</h2>
|
||||
<div class="branch-bf">
|
||||
<div class="bf">
|
||||
<img src="../images/landing-page/push-icon-1.svg" alt="GitHub logo">
|
||||
<img src="../images/landing-page/push-icon-1.svg">
|
||||
<p>You push your<br>code to GitHub</p>
|
||||
</div>
|
||||
<div class="divider-line-horizontal">
|
||||
|
@ -122,7 +122,7 @@
|
|||
<div class="divider-line-vertical">
|
||||
</div>
|
||||
<div class="bf">
|
||||
<img src="../images/landing-page/push-icon-2.svg" alt="Trigger build">
|
||||
<img src="../images/landing-page/push-icon-2.svg">
|
||||
<p>GitHub triggers<br>Travis CI to build</p>
|
||||
</div>
|
||||
<div class="divider-line-horizontal">
|
||||
|
@ -130,7 +130,7 @@
|
|||
<div class="divider-line-vertical">
|
||||
</div>
|
||||
<div class="bf">
|
||||
<img src="../images/landing-page/push-icon-3.svg" alt="Travis logo">
|
||||
<img src="../images/landing-page/push-icon-3.svg">
|
||||
<p>Hooray!<br>Your build passes!</p>
|
||||
</div>
|
||||
<div class="divider-line-horizontal">
|
||||
|
@ -138,7 +138,7 @@
|
|||
<div class="divider-line-vertical">
|
||||
</div>
|
||||
<div class="bf">
|
||||
<img src="../images/landing-page/push-icon-4.svg" alt="Heroku logo">
|
||||
<img src="../images/landing-page/push-icon-4.svg">
|
||||
<p>Travis CI deploys<br>to Heroku</p>
|
||||
</div>
|
||||
<div class="divider-line-horizontal">
|
||||
|
@ -146,14 +146,14 @@
|
|||
<div class="divider-line-vertical">
|
||||
</div>
|
||||
<div class="bf">
|
||||
<img src="../images/landing-page/push-icon-5.svg" alt="Slack logo">
|
||||
<img src="../images/landing-page/push-icon-5.svg">
|
||||
<p>Travis CI tells the<br>team all is well</p>
|
||||
</div>
|
||||
</div>
|
||||
<h2 id="pr-bf-margin">Pull request build flow</h2>
|
||||
<div class="branch-bf">
|
||||
<div class="bf">
|
||||
<img src="../images/landing-page/pull-icon-1.svg" alt="PR icon">
|
||||
<img src="../images/landing-page/pull-icon-1.svg">
|
||||
<p>A pull request<br>is created</p>
|
||||
</div>
|
||||
<div class="divider-line-horizontal">
|
||||
|
@ -161,7 +161,7 @@
|
|||
<div class="divider-line-vertical">
|
||||
</div>
|
||||
<div class="bf">
|
||||
<img src="../images/landing-page/pull-icon-2.svg" alt="Check test">
|
||||
<img src="../images/landing-page/pull-icon-2.svg">
|
||||
<p>GitHub tells Travis CI the build is mergeable</p>
|
||||
</div>
|
||||
<div class="divider-line-horizontal">
|
||||
|
@ -169,7 +169,7 @@
|
|||
<div class="divider-line-vertical">
|
||||
</div>
|
||||
<div class="bf">
|
||||
<img src="../images/landing-page/push-icon-3.svg" alt="Tavis logo">
|
||||
<img src="../images/landing-page/push-icon-3.svg">
|
||||
<p>Hooray!<br>Your build passes!</p>
|
||||
</div>
|
||||
<div class="divider-line-horizontal">
|
||||
|
@ -177,7 +177,7 @@
|
|||
<div class="divider-line-vertical">
|
||||
</div>
|
||||
<div class="bf">
|
||||
<img src="../images/landing-page/pull-icon-4.svg" alt="Build status">
|
||||
<img src="../images/landing-page/pull-icon-4.svg">
|
||||
<p>Travis CI updates the PR that it passed</p>
|
||||
</div>
|
||||
<div class="divider-line-horizontal">
|
||||
|
@ -185,22 +185,22 @@
|
|||
<div class="divider-line-vertical">
|
||||
</div>
|
||||
<div class="bf">
|
||||
<img src="../images/landing-page/pull-icon-5.svg" alt="Merge icon">
|
||||
<img src="../images/landing-page/pull-icon-5.svg">
|
||||
<p>You merge in<br>the PR goodness</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row user-testimonials">
|
||||
<section class="landing-centered-wrapper">
|
||||
<div class="landing-centered-wrapper">
|
||||
<div class="medium-6 columns">
|
||||
<h2>Some people have said some pretty nice things about us</h2>
|
||||
</div>
|
||||
<div class="medium-6 columns">
|
||||
<div class="small-3 columns">
|
||||
<img src="../images/landing-page/dhh.png" class="home-avatar" alt="image DHH">
|
||||
<img src="../images/landing-page/dhh.png" class="home-avatar">
|
||||
</div>
|
||||
<div class="small-9 columns">
|
||||
<p>Travis CI makes it so much easier for us to coordinate the thousands of commits and contributors that flow through the Rails code base. The test suite for such a large project is vast, and we wouldn’t be catching issues as quickly or smoothly without the help of Travis.</p>
|
||||
|
@ -209,7 +209,7 @@
|
|||
</div>
|
||||
|
||||
<div class="small-3 columns">
|
||||
<img src="../images/landing-page/chris.png" class="home-avatar" alt="image Chris Aniszczyk">
|
||||
<img src="../images/landing-page/chris.png" class="home-avatar">
|
||||
</div>
|
||||
<div class="small-9 columns">
|
||||
<p>We love Travis CI at @TwitterOSS and use it for the majority of our open source projects on GitHub. Travis CI is simple to use, we love their API to build tooling and adore the new container infrastructure for speedier builds.</p>
|
||||
|
@ -218,7 +218,7 @@
|
|||
</div>
|
||||
|
||||
<div class="small-3 columns">
|
||||
<img src="../images/landing-page/alex.png" class="home-avatar" alt="Alex Gaynor">
|
||||
<img src="../images/landing-page/alex.png" class="home-avatar">
|
||||
</div>
|
||||
<div class="small-9 columns">
|
||||
<p>Not only is Travis CI the best way to test your software, it is the right way. rm -rf jenkins && touch .travis.yml</p>
|
||||
|
@ -226,7 +226,7 @@
|
|||
<p class="title">PyPy and Python Core Team Member</p>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{{/travis-layout}}
|
||||
|
|
|
@ -14,7 +14,7 @@
|
|||
{{#each broadcasts.content as |broadcast|}}
|
||||
<li><p><span class="broadcast-status {{broadcast.category}}" title="Transmitted on {{broadcast.updated_at}}"></span> {{{broadcast.message}}} <a {{action 'markBroadcastAsSeen' broadcast}} class="icon-close"></a></p></li>
|
||||
{{else}}
|
||||
<li><p>There are no broadcasts</p></li>
|
||||
<li><p>There are no broadcasts transmitted</p></li>
|
||||
{{/each}}
|
||||
</ul>
|
||||
{{/if}}
|
||||
|
|
|
@ -1,6 +1,4 @@
|
|||
import config from 'travis/config/environment';
|
||||
import Ember from 'ember';
|
||||
|
||||
var ccXml, email, githubAdmin, githubCommit, githubNetwork, githubPullRequest,
|
||||
githubRepo, githubWatchers, gravatarImage, plainTextLog, statusImage;
|
||||
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
{
|
||||
"name": "travis",
|
||||
"dependencies": {
|
||||
"ember": "2.4.5",
|
||||
"ember": "2.2.1",
|
||||
"ember-cli-shims": "0.1.1",
|
||||
"ember-cli-test-loader": "0.2.2",
|
||||
"ember-load-initializers": "0.1.7",
|
||||
|
@ -22,6 +22,7 @@
|
|||
"ceibo": "1.0.0"
|
||||
},
|
||||
"resolutions": {
|
||||
"ember": "2.4.5"
|
||||
"ember": "2.2.1",
|
||||
"ember-qunit-notifications": "0.1.0"
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,4 +1,30 @@
|
|||
window.deprecationWorkflow = window.deprecationWorkflow || {};
|
||||
window.deprecationWorkflow.config = {
|
||||
workflow: []
|
||||
workflow: [
|
||||
// DONE
|
||||
{ handler: "log", matchMessage: "Ember.LinkView is deprecated. Please use Ember.LinkComponent." },
|
||||
{ handler: "log", matchMessage: "Calling store.find() with a query object is deprecated. Use store.query() instead." },
|
||||
{ handler: "log", matchMessage: new RegExp("A property of .*? was modified inside the didInsertElement hook. You should never change properties on components, services or models during didInsertElement because it causes significant performance degradation.") },
|
||||
{ handler: "log", matchMessage: "Ember.arrayComputed is deprecated. Replace it with plain array methods" },
|
||||
// this will still emit deprecations, because we use state property in
|
||||
// request-icon compoenent, that makes Ember.js think that we're using
|
||||
// internal component's state
|
||||
{ handler: "log", matchMessage: "Usage of `state` is deprecated, use `_state` instead." },
|
||||
{ handler: "log", matchMessage: "RestAdapter#find has been deprecated and renamed to `findRecord`." },
|
||||
{ handler: "log", matchMessage: "Usage of `typeKey` has been deprecated and will be removed in Ember Data 2.0. It has been replaced by `modelName` on the model class." },
|
||||
{ handler: "log", matchMessage: "Using store.dematerializeRecord() has been deprecated since it was intended for private use only. You should use store.unloadRecord() instead." },
|
||||
{ handler: "log", matchMessage: "Using the same function as getter and setter is deprecated." },
|
||||
{ handler: "log", matchMessage: "`Ember.ArrayController` is deprecated." },
|
||||
{ handler: "log", matchMessage: "The default behavior of `shouldBackgroundReloadRecord` will change in Ember Data 2.0 to always return true. If you would like to preserve the current behavior please override `shouldBackgroundReloadRecord` in your adapter:application and return false." },
|
||||
{ handler: "log", matchMessage: "Function#observesBefore is deprecated and will be removed in the near future." },
|
||||
{ handler: "log", matchMessage: "Ember.addBeforeObserver is deprecated and will be removed in the near future." },
|
||||
{ handler: "log", matchMessage: "Ember.removeBeforeObserver is deprecated and will be removed in the near future." },
|
||||
{ handler: "log", matchMessage: "Using DS.Snapshot.get() is deprecated. Use .attr(), .belongsTo() or .hasMany() instead." },
|
||||
{ handler: "log", matchMessage: "The filter API will be moved into a plugin soon. To enable store.filter using an environment flag, or to use an alternative, you can visit the ember-data-filter addon page" },
|
||||
{ handler: "log", matchMessage: "Ember.View is deprecated. Consult the Deprecations Guide for a migration strategy." },
|
||||
|
||||
// TODO
|
||||
{ handler: "silence", matchMessage: "Using `ApplicationInstance.container.lookup` is deprecated. Please use `ApplicationInstance.lookup` instead." },
|
||||
{ handler: "silence", matchMessage: new RegExp("the component:.*? test module is implicitly running in unit test mode, which will change to integration test mode by default in an upcoming version of ember-test-helpers. Add `unit: true` or a `needs:[]` list to explicitly opt in to unit test mode.") },
|
||||
]
|
||||
};
|
||||
|
|
|
@ -10,7 +10,6 @@ module.exports = function(defaults) {
|
|||
fingerprint = false;
|
||||
} else {
|
||||
fingerprint = {
|
||||
exclude: ['images/emoji'],
|
||||
extensions: ['js', 'css', 'png', 'jpg', 'gif', 'map', 'svg']
|
||||
};
|
||||
|
||||
|
|
|
@ -29,7 +29,7 @@
|
|||
"ember-cli-babel": "^5.1.6",
|
||||
"ember-cli-dependency-checker": "^1.2.0",
|
||||
"ember-cli-deprecation-workflow": "0.1.6",
|
||||
"ember-cli-document-title": "0.3.1",
|
||||
"ember-cli-document-title": "0.2.0",
|
||||
"ember-cli-htmlbars": "^1.0.3",
|
||||
"ember-cli-htmlbars-inline-precompile": "^0.3.1",
|
||||
"ember-cli-inject-live-reload": "^1.4.0",
|
||||
|
@ -48,7 +48,6 @@
|
|||
"ember-disable-proxy-controllers": "^1.0.1",
|
||||
"ember-export-application-global": "^1.0.5",
|
||||
"ember-load-initializers": "^0.5.1",
|
||||
"ember-getowner-polyfill": "1.0.1",
|
||||
"ember-resolver": "^2.0.3",
|
||||
"ember-try": "0.0.7",
|
||||
"emberx-select": "2.0.2",
|
||||
|
|
|
@ -1,9 +0,0 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- Generator: Adobe Illustrator 19.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
|
||||
<svg version="1.1" id="norway" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
|
||||
viewBox="0 0 25.5 17" style="enable-background:new 0 0 25.5 17;" xml:space="preserve">
|
||||
<style type="text/css">
|
||||
.st0{fill:#F7F7F7;}
|
||||
</style>
|
||||
<path class="st0" d="M25.5,0H0v17h25.5V0L25.5,0z"/>
|
||||
</svg>
|
Before Width: | Height: | Size: 461 B |
|
@ -1,41 +0,0 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- Generator: Adobe Illustrator 19.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
|
||||
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
|
||||
viewBox="0 0 1141.312 600.312" style="enable-background:new 0 0 1141.312 600.312;" xml:space="preserve">
|
||||
<style type="text/css">
|
||||
.st0{fill:#273476;}
|
||||
.st1{fill:#FFFFFF;}
|
||||
.st2{fill:#D0202D;}
|
||||
.st3{fill:#ED2224;}
|
||||
.st4{fill:none;stroke:#D1D3D4;stroke-width:7;stroke-miterlimit:10;}
|
||||
</style>
|
||||
<g>
|
||||
<g>
|
||||
<polygon class="st0" points="0.001,400.156 0.001,360.156 0.001,240.156 0.001,200.156 288.509,200.156 0,55.902 0,544.41
|
||||
288.509,400.156 "/>
|
||||
<polygon class="st0" points="500.313,0 111.803,0 500.313,194.255 "/>
|
||||
<polygon class="st0" points="112.429,600 500.313,600 500.313,406.057 "/>
|
||||
<polygon class="st0" points="0,0 0,0 0,0 "/>
|
||||
<rect y="544.41" class="st1" width="0" height="55.59"/>
|
||||
<rect x="0" y="0" class="st1" width="0" height="55.902"/>
|
||||
<rect x="500.313" y="600" class="st1" width="40" height="0.312"/>
|
||||
<polygon class="st1" points="0.001,200.156 0.001,240.156 540.313,240.156 540.313,0 500.313,0 500.313,194.255 111.803,0
|
||||
0.001,0 400.315,200.156 333.232,200.156 0.001,33.541 0.001,0 0,0 0,0 0,55.902 288.509,200.156 "/>
|
||||
<polygon class="st1" points="540.313,360.156 0.001,360.156 0.001,400.156 288.509,400.156 0,544.41 0,600 0.626,600
|
||||
400.315,400.156 467.396,400.156 67.709,600 112.429,600 500.313,406.057 500.313,600 540.313,600 "/>
|
||||
<rect x="540.313" y="600" class="st2" width="54.999" height="0.312"/>
|
||||
<polygon class="st2" points="0.001,240.156 0.001,360.156 540.313,360.156 540.313,600 595.312,600 595.312,0 540.313,0
|
||||
540.313,240.156 "/>
|
||||
<polygon class="st2" points="400.315,400.156 0.626,600 67.709,600 467.396,400.156 "/>
|
||||
<polygon class="st2" points="333.232,200.156 400.315,200.156 0.001,0 0.001,33.541 "/>
|
||||
<rect x="595.312" y="600" class="st1" width="10" height="0.312"/>
|
||||
</g>
|
||||
<g>
|
||||
<polygon class="st3" points="1141.312,0 696.312,0 696.312,112.5 747.562,112.5 747.562,243.75 878.812,243.75 878.812,356.25
|
||||
747.562,356.25 747.562,487.5 696.312,487.5 696.312,600 1141.312,600 "/>
|
||||
<polygon class="st1" points="747.562,487.5 747.562,356.25 878.812,356.25 878.812,243.75 747.562,243.75 747.562,112.5
|
||||
696.312,112.5 696.312,487.5 "/>
|
||||
</g>
|
||||
</g>
|
||||
<line class="st4" x1="643.625" y1="0" x2="643.625" y2="600.312"/>
|
||||
</svg>
|
Before Width: | Height: | Size: 2.4 KiB |
BIN
public/images/sponsors/5apps-205x60.png
Normal file
After Width: | Height: | Size: 4.6 KiB |
BIN
public/images/sponsors/8thlight-205x60.jpg
Normal file
After Width: | Height: | Size: 24 KiB |
BIN
public/images/sponsors/agileanimal-205x60.png
Normal file
After Width: | Height: | Size: 6.9 KiB |
BIN
public/images/sponsors/amen-205x60.jpg
Normal file
After Width: | Height: | Size: 5.3 KiB |
BIN
public/images/sponsors/atomicobject-205x60.png
Normal file
After Width: | Height: | Size: 1.7 KiB |
BIN
public/images/sponsors/avarteq-140x40.png
Normal file
After Width: | Height: | Size: 7.4 KiB |
BIN
public/images/sponsors/basho-205x60.png
Normal file
After Width: | Height: | Size: 5.8 KiB |
BIN
public/images/sponsors/bendyworks-100x60.png
Normal file
After Width: | Height: | Size: 1010 B |
BIN
public/images/sponsors/bendyworks-205x130.png
Normal file
After Width: | Height: | Size: 5.3 KiB |
BIN
public/images/sponsors/bendyworks-210x210.png
Normal file
After Width: | Height: | Size: 22 KiB |
BIN
public/images/sponsors/bluebox-78x15.png
Normal file
After Width: | Height: | Size: 2.4 KiB |
BIN
public/images/sponsors/cloudcontrol-100x60.png
Normal file
After Width: | Height: | Size: 1.1 KiB |
BIN
public/images/sponsors/cloudcontrol-205x130.png
Normal file
After Width: | Height: | Size: 1.8 KiB |
BIN
public/images/sponsors/cloudcontrol-210x210.png
Normal file
After Width: | Height: | Size: 7.1 KiB |
BIN
public/images/sponsors/cobotme-205x60.png
Normal file
After Width: | Height: | Size: 9.4 KiB |
BIN
public/images/sponsors/codeminer-205x60.png
Normal file
After Width: | Height: | Size: 1.7 KiB |
BIN
public/images/sponsors/crowdinteractive-205x60.png
Normal file
After Width: | Height: | Size: 2.7 KiB |
BIN
public/images/sponsors/engineyard-140x40.png
Normal file
After Width: | Height: | Size: 2.9 KiB |
BIN
public/images/sponsors/enterprise-rails-140x40.png
Normal file
After Width: | Height: | Size: 5.0 KiB |
BIN
public/images/sponsors/esm-205x60.png
Normal file
After Width: | Height: | Size: 3.9 KiB |
BIN
public/images/sponsors/evilmartians-205x60.png
Normal file
After Width: | Height: | Size: 4.0 KiB |
BIN
public/images/sponsors/fingertips-205x60.png
Normal file
After Width: | Height: | Size: 1.5 KiB |
BIN
public/images/sponsors/gidsy.png
Normal file
After Width: | Height: | Size: 4.9 KiB |
BIN
public/images/sponsors/github.png
Normal file
After Width: | Height: | Size: 2.7 KiB |
BIN
public/images/sponsors/heroku-100x60.png
Normal file
After Width: | Height: | Size: 956 B |
BIN
public/images/sponsors/heroku-140x40.png
Normal file
After Width: | Height: | Size: 3.0 KiB |
BIN
public/images/sponsors/heroku-205x130.png
Normal file
After Width: | Height: | Size: 1.4 KiB |
BIN
public/images/sponsors/heroku-205x60.png
Normal file
After Width: | Height: | Size: 1.7 KiB |
BIN
public/images/sponsors/iriscouch-140x40.png
Normal file
After Width: | Height: | Size: 3.2 KiB |
BIN
public/images/sponsors/jumpstartlab-140x40.png
Normal file
After Width: | Height: | Size: 2.4 KiB |
BIN
public/images/sponsors/jumpstartlab-205x60.png
Normal file
After Width: | Height: | Size: 3.4 KiB |
BIN
public/images/sponsors/kanbanery-100x60.png
Normal file
After Width: | Height: | Size: 1.7 KiB |
BIN
public/images/sponsors/kanbanery-205x130.png
Normal file
After Width: | Height: | Size: 2.8 KiB |
BIN
public/images/sponsors/kanbanery-205x60.png
Normal file
After Width: | Height: | Size: 10 KiB |
BIN
public/images/sponsors/librato-metrics-140x40.png
Normal file
After Width: | Height: | Size: 3.3 KiB |
BIN
public/images/sponsors/medidata-205x60.png
Normal file
After Width: | Height: | Size: 6.6 KiB |
BIN
public/images/sponsors/meltmedia-205x60.png
Normal file
After Width: | Height: | Size: 2.8 KiB |
BIN
public/images/sponsors/mindmatters-205x60.png
Normal file
After Width: | Height: | Size: 879 B |
BIN
public/images/sponsors/mongohq-100x60.png
Normal file
After Width: | Height: | Size: 1.1 KiB |
BIN
public/images/sponsors/mongohq-205x130.png
Normal file
After Width: | Height: | Size: 1.9 KiB |
BIN
public/images/sponsors/mongohq-205x60.png
Normal file
After Width: | Height: | Size: 2.5 KiB |
BIN
public/images/sponsors/nedap-100x60.png
Normal file
After Width: | Height: | Size: 817 B |
BIN
public/images/sponsors/nedap-205x130.png
Normal file
After Width: | Height: | Size: 3.6 KiB |
BIN
public/images/sponsors/nedap-205x60.png
Normal file
After Width: | Height: | Size: 3.4 KiB |
BIN
public/images/sponsors/nedap-430x130.png
Normal file
After Width: | Height: | Size: 7.0 KiB |
BIN
public/images/sponsors/papertrail-140x40.png
Normal file
After Width: | Height: | Size: 3.8 KiB |
BIN
public/images/sponsors/planio-100x60.png
Normal file
After Width: | Height: | Size: 1.4 KiB |
BIN
public/images/sponsors/planio-205x130.png
Normal file
After Width: | Height: | Size: 13 KiB |
BIN
public/images/sponsors/planio-205x60.png
Normal file
After Width: | Height: | Size: 3.5 KiB |
BIN
public/images/sponsors/postmark-140x40.png
Normal file
After Width: | Height: | Size: 1.8 KiB |
BIN
public/images/sponsors/pusher-140x40.png
Normal file
After Width: | Height: | Size: 5.2 KiB |
BIN
public/images/sponsors/railslove-140x40.png
Normal file
After Width: | Height: | Size: 5.2 KiB |
BIN
public/images/sponsors/railslove.png
Normal file
After Width: | Height: | Size: 5.1 KiB |
BIN
public/images/sponsors/servergrove-140x40.png
Normal file
After Width: | Height: | Size: 3.7 KiB |
BIN
public/images/sponsors/shopify-140x40.png
Normal file
After Width: | Height: | Size: 7.7 KiB |
BIN
public/images/sponsors/shopify.png
Normal file
After Width: | Height: | Size: 7.3 KiB |
BIN
public/images/sponsors/site5-205x60.png
Normal file
After Width: | Height: | Size: 1.7 KiB |
BIN
public/images/sponsors/soundcloud-100x60.png
Normal file
After Width: | Height: | Size: 1.2 KiB |
BIN
public/images/sponsors/soundcloud-205x130.png
Normal file
After Width: | Height: | Size: 6.5 KiB |
BIN
public/images/sponsors/soundcloud-205x60.png
Normal file
After Width: | Height: | Size: 2.1 KiB |
BIN
public/images/sponsors/soundcloud.png
Normal file
After Width: | Height: | Size: 16 KiB |
BIN
public/images/sponsors/stickermule-140x40.png
Normal file
After Width: | Height: | Size: 3.8 KiB |
BIN
public/images/sponsors/stripe-140x40.png
Normal file
After Width: | Height: | Size: 3.4 KiB |
BIN
public/images/sponsors/stripe-205x60.png
Normal file
After Width: | Height: | Size: 10 KiB |
BIN
public/images/sponsors/stripe-stamp-111x103.png
Normal file
After Width: | Height: | Size: 15 KiB |
BIN
public/images/sponsors/thinkrelevance-205x60.png
Normal file
After Width: | Height: | Size: 2.6 KiB |
BIN
public/images/sponsors/thoughtbot-140x40.png
Normal file
After Width: | Height: | Size: 4.2 KiB |
BIN
public/images/sponsors/ticketevolution-100x60.png
Normal file
After Width: | Height: | Size: 1.3 KiB |
BIN
public/images/sponsors/ticketevolution-205x130.jpg
Normal file
After Width: | Height: | Size: 32 KiB |
BIN
public/images/sponsors/ticketevolution-205x60.jpg
Normal file
After Width: | Height: | Size: 28 KiB |