Merge branch 'master' of github.com:travis-ci/travis-web
This commit is contained in:
commit
99edd9f0df
1
.gitignore
vendored
1
.gitignore
vendored
|
@ -6,3 +6,4 @@
|
|||
/public/version
|
||||
.sass-cache
|
||||
.localeapp/key
|
||||
/assets/scripts/config/locales.js
|
||||
|
|
|
@ -1,3 +1,3 @@
|
|||
---
|
||||
:polled_at: 1355238733
|
||||
:updated_at: 1355238733
|
||||
:polled_at: 1358204368
|
||||
:updated_at: 1358204368
|
||||
|
|
26
README.md
26
README.md
|
@ -2,30 +2,26 @@
|
|||
|
||||
### Running the app
|
||||
|
||||
This is a static html/js app so you shouldn't need to install anything.
|
||||
In order to run the app you need to install dependencies with:
|
||||
|
||||
git clone git://github.com/travis-ci/travis-web.git
|
||||
cd travis-web
|
||||
open public/index.html
|
||||
bundle install
|
||||
|
||||
Running locally with a local API server:
|
||||
Then you have to run the server, the easiest way to do this is to
|
||||
use foreman:
|
||||
|
||||
RUN_API=1 bundle exec rackup -p 3000
|
||||
bundle exec foreman start
|
||||
|
||||
Running against existing API endpoint:
|
||||
Now you can open [localhost:5000](http://localhost:5000)
|
||||
|
||||
API_ENDPOINT="https://api.travis-ci.org/" RUN_API=0 bundle exec rackup
|
||||
By default it uses official API at `https://api.travis-ci.org`, but you
|
||||
can set your own enpoint using:
|
||||
|
||||
Run locally, one on `ci.dev` and one on `api.dev`:
|
||||
|
||||
. dev.env
|
||||
bundle exec rackup
|
||||
API_ENDPOINT="http://localhost:300/" bundle exec foreman start
|
||||
|
||||
This will run against API run locally.
|
||||
|
||||
### Compiling assets manually
|
||||
|
||||
bundle exec rakep
|
||||
ENV=production bundle exec rakep
|
||||
|
||||
### Compiling assets on change
|
||||
|
||||
bundle exec guard
|
||||
|
|
|
@ -13,6 +13,7 @@ require 'views'
|
|||
require 'config/locales'
|
||||
require 'data/sponsors'
|
||||
|
||||
require 'travis/instrumentation'
|
||||
# $.mockjaxSettings.log = false
|
||||
# Ember.LOG_BINDINGS = true
|
||||
# Ember.ENV.RAISE_ON_DEPRECATION = true
|
||||
|
|
|
@ -30,12 +30,13 @@
|
|||
if user && token && @validateUser(user)
|
||||
{ user: user, token: token }
|
||||
else
|
||||
console.log('dropping user, no token') unless token?
|
||||
storage.removeItem('travis.user')
|
||||
storage.removeItem('travis.token')
|
||||
null
|
||||
|
||||
validateUser: (user) ->
|
||||
@validateHas('id', user) && @validateHas('login', user) #&& @validateHas('token', user)
|
||||
@validateHas('id', user) && @validateHas('login', user) && @validateHas('token', user) && @validateHas('correct_scopes', user) && user.correct_scopes
|
||||
|
||||
validateHas: (field, user) ->
|
||||
if user[field]
|
||||
|
|
|
@ -1,21 +1,9 @@
|
|||
@Travis.Urls =
|
||||
repo: (slug) ->
|
||||
"/#{slug}"
|
||||
plainTextLog: (id) ->
|
||||
"#{Travis.config.api_endpoint}/artifacts/#{id}.txt?deansi=true"
|
||||
|
||||
builds: (slug) ->
|
||||
"/#{slug}/builds"
|
||||
|
||||
pullRequests: (slug) ->
|
||||
"/#{slug}/pull_requests"
|
||||
|
||||
branches: (slug) ->
|
||||
"/#{slug}/branches"
|
||||
|
||||
build: (slug, id) ->
|
||||
"/#{slug}/builds/#{id}"
|
||||
|
||||
job: (slug, id) ->
|
||||
"/#{slug}/jobs/#{id}"
|
||||
githubPullRequest: (slug, pullRequestNumber) ->
|
||||
"http://github.com/#{slug}/pull/#{pullRequestNumber}"
|
||||
|
||||
githubCommit: (slug, sha) ->
|
||||
"http://github.com/#{slug}/commit/#{sha}"
|
||||
|
@ -37,10 +25,3 @@
|
|||
|
||||
email: (email) ->
|
||||
"mailto:#{email}"
|
||||
|
||||
account: (login) ->
|
||||
"/profile/#{login}"
|
||||
|
||||
user: (login) ->
|
||||
"/profile/#{login}/me"
|
||||
|
||||
|
|
|
@ -1,14 +1,15 @@
|
|||
require 'travis/model'
|
||||
|
||||
@Travis.Commit = Travis.Model.extend
|
||||
buildId: DS.attr('number')
|
||||
sha: DS.attr('string')
|
||||
branch: DS.attr('string')
|
||||
message: DS.attr('string')
|
||||
compareUrl: DS.attr('string')
|
||||
authorName: DS.attr('string')
|
||||
authorEmail: DS.attr('string')
|
||||
committerName: DS.attr('string')
|
||||
committerEmail: DS.attr('string')
|
||||
buildId: DS.attr('number')
|
||||
sha: DS.attr('string')
|
||||
branch: DS.attr('string')
|
||||
message: DS.attr('string')
|
||||
compareUrl: DS.attr('string')
|
||||
authorName: DS.attr('string')
|
||||
authorEmail: DS.attr('string')
|
||||
committerName: DS.attr('string')
|
||||
committerEmail: DS.attr('string')
|
||||
pullRequestNumber: DS.attr('number')
|
||||
|
||||
build: DS.belongsTo('Travis.Build', key: 'buildId')
|
||||
|
|
|
@ -2,7 +2,7 @@ require 'travis/ajax'
|
|||
require 'travis/model'
|
||||
|
||||
@Travis.User = Travis.Model.extend
|
||||
name: DS.attr('string')
|
||||
_name: DS.attr('string', key: 'name')
|
||||
email: DS.attr('string')
|
||||
login: DS.attr('string')
|
||||
token: DS.attr('string')
|
||||
|
@ -12,6 +12,15 @@ require 'travis/model'
|
|||
syncedAt: DS.attr('string')
|
||||
repoCount: DS.attr('number')
|
||||
|
||||
# This is the only way I found to override the attribue created with DS.attr
|
||||
name: Ember.computed( (key, value) ->
|
||||
if arguments.length == 1
|
||||
@get('_name') || @get('login')
|
||||
else
|
||||
@set('_name', value)
|
||||
value
|
||||
).property('login', '_name')
|
||||
|
||||
init: ->
|
||||
@poll() if @get('isSyncing')
|
||||
@_super()
|
||||
|
@ -19,7 +28,7 @@ require 'travis/model'
|
|||
Ember.run.next this, ->
|
||||
transaction = @get('store').transaction()
|
||||
transaction.add this
|
||||
|
||||
|
||||
urlGithub: (->
|
||||
"https://github.com/#{@get('login')}"
|
||||
).property()
|
||||
|
@ -32,7 +41,7 @@ require 'travis/model'
|
|||
).property()
|
||||
|
||||
updateLocale: (locale) ->
|
||||
|
||||
|
||||
transaction = @get('transaction')
|
||||
transaction.commit()
|
||||
|
||||
|
|
|
@ -204,7 +204,7 @@ Travis.Router = Ember.Router.extend
|
|||
dynamicSegmentPattern: "([^/#]+)"
|
||||
|
||||
connectOutlets: (router, repo) ->
|
||||
unless repo.constructor == Travis.Repo
|
||||
if repo && repo.constructor != Travis.Repo
|
||||
repo = Travis.Repo.find(repo.id)
|
||||
router.get('repoController').set 'repo', repo
|
||||
|
||||
|
@ -300,6 +300,19 @@ Travis.Router = Ember.Router.extend
|
|||
lineNumber: lineNumberRoute
|
||||
dynamicSegmentPattern: "([^/#]+)"
|
||||
|
||||
logRedirect: Ember.Route.extend
|
||||
route: '/log.txt'
|
||||
connectOutlets: (router) ->
|
||||
build = router.get('repoController').get 'build'
|
||||
|
||||
observer = ->
|
||||
if logId = build.get('jobs.firstObject.log.id')
|
||||
window.location = Travis.Urls.plainTextLog(logId)
|
||||
|
||||
build.removeObserver('jobs.firstObject.log.id', observer)
|
||||
|
||||
build.addObserver('jobs.firstObject.log.id', observer)
|
||||
|
||||
pullRequests: Ember.Route.extend
|
||||
route: '/pull_requests'
|
||||
connectOutlets: (router, repo) ->
|
||||
|
@ -349,3 +362,16 @@ Travis.Router = Ember.Router.extend
|
|||
initialState: 'default'
|
||||
default: defaultRoute
|
||||
lineNumber: lineNumberRoute
|
||||
|
||||
logRedirect: Ember.Route.extend
|
||||
route: '/log.txt'
|
||||
connectOutlets: (router, job) ->
|
||||
job = router.get('repoController').get 'job'
|
||||
|
||||
observer = ->
|
||||
if logId = job.get('log.id')
|
||||
window.location = Travis.Urls.plainTextLog(logId)
|
||||
|
||||
job.removeObserver('log.id', observer)
|
||||
|
||||
job.addObserver('log.id', observer)
|
||||
|
|
|
@ -68,6 +68,8 @@ Travis.Store = DS.Store.extend
|
|||
{ id: id, clientId: clientId }
|
||||
|
||||
receive: (event, data) ->
|
||||
return if event == 'worker:added' || event == 'worker:removed'
|
||||
|
||||
[name, type] = event.split(':')
|
||||
|
||||
mappings = @adapter.get('mappings')
|
||||
|
|
|
@ -3,8 +3,15 @@
|
|||
<thead>
|
||||
<tr>
|
||||
<th>{{t builds.name}}</th>
|
||||
<th>{{t builds.commit}}</th>
|
||||
<th>{{t builds.message}}</th>
|
||||
<th>
|
||||
{{t builds.commit}}
|
||||
</th>
|
||||
{{#if view.isPullRequestsList}}
|
||||
<th>
|
||||
{{t builds.pr}}
|
||||
</th>
|
||||
{{/if}}
|
||||
<th>{{t builds.duration}}</th>
|
||||
<th>{{t builds.finished_at}}</th>
|
||||
</tr>
|
||||
|
@ -21,14 +28,21 @@
|
|||
</a>
|
||||
{{/if}}
|
||||
</td>
|
||||
<td class="message">
|
||||
{{{formatMessage commit.message short="true"}}}
|
||||
</td>
|
||||
<td class="commit">
|
||||
<a {{bindAttr href="view.urlGithubCommit"}}>
|
||||
{{formatCommit commit}}
|
||||
</a>
|
||||
</td>
|
||||
<td class="message">
|
||||
{{{formatMessage commit.message short="true"}}}
|
||||
</td>
|
||||
{{#if commit.pullRequestNumber}}
|
||||
<td>
|
||||
<a {{bindAttr href="view.urlGithubPullRequest"}}>
|
||||
#{{commit.pullRequestNumber}}
|
||||
</a>
|
||||
</td>
|
||||
{{/if}}
|
||||
<td class="duration" {{bindAttr title="duration"}}>
|
||||
{{formatDuration duration}}
|
||||
</td>
|
||||
|
|
|
@ -29,6 +29,11 @@
|
|||
<a href="#" name="regenerate-key" class="open-popup" {{action regenerateKeyPopup target="view"}}>Regenerate Key</a>
|
||||
</li>
|
||||
{{/if}}
|
||||
{{#if view.showDownloadLog}}
|
||||
<li>
|
||||
<a class="download-log" {{bindAttr href="view.plainTextLogUrl"}}>Download log</a>
|
||||
</li>
|
||||
{{/if}}
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
|
@ -37,14 +42,14 @@
|
|||
<p>
|
||||
<label>{{t repositories.branch}}:</label>
|
||||
{{#if view.branches.isLoaded}}
|
||||
{{view Ember.Select contentBinding="view.branches" selectionBinding="view.branch" optionLabelPath="content.commit.branch" optionValuePath="content.commit.branch"}}
|
||||
{{view Ember.Select contentBinding="view.branches" selectionBinding="view.statusImageBranch" optionLabelPath="content.commit.branch" optionValuePath="content.commit.branch"}}
|
||||
{{else}}
|
||||
<span class="loading"></span>
|
||||
{{/if}}
|
||||
</p>
|
||||
<p>
|
||||
<label>{{t repositories.image_url}}:</label>
|
||||
<input type="text" class="url" {{bindAttr value="view.urlStatusImage"}}></input>
|
||||
<input type="text" class="url" {{bindAttr value="view.statusImageUrl"}}></input>
|
||||
</p>
|
||||
<p>
|
||||
<label>{{t repositories.markdown}}:</label>
|
||||
|
|
|
@ -3,6 +3,11 @@
|
|||
templateName: 'builds/list'
|
||||
buildsBinding: 'controller.builds'
|
||||
|
||||
isPullRequestsList: (->
|
||||
console.log @get('controller.tab')
|
||||
@get('controller.tab') == 'pull_requests'
|
||||
).property('controller.tab')
|
||||
|
||||
showMore: ->
|
||||
id = @get('controller.repo.id')
|
||||
number = @get('builds.lastObject.number')
|
||||
|
@ -35,14 +40,14 @@
|
|||
Travis.Helpers.colorForState(@get('build.state'))
|
||||
).property('build.state')
|
||||
|
||||
urlBuild: (->
|
||||
Travis.Urls.build(@get('repo.slug'), @get('build.id'))
|
||||
).property('repo.slug', 'build.id')
|
||||
|
||||
urlGithubCommit: (->
|
||||
Travis.Urls.githubCommit(@get('repo.slug'), @get('commit.sha'))
|
||||
).property('repo.slug', 'commit.sha')
|
||||
|
||||
urlGithubPullRequest: (->
|
||||
Travis.Urls.githubPullRequest(@get('repo.slug'), @get('commit.pullRequestNumber'))
|
||||
).property('repo.slug', 'commit.pullRequestNumber')
|
||||
|
||||
BuildView: Travis.View.extend
|
||||
templateName: 'builds/show'
|
||||
elementId: 'build'
|
||||
|
@ -62,10 +67,6 @@
|
|||
Travis.Helpers.colorForState(@get('build.state'))
|
||||
).property('build.state')
|
||||
|
||||
urlBuild: (->
|
||||
Travis.Urls.build(@get('repo.slug'), @get('build.id'))
|
||||
).property('repo.slug', 'build.id')
|
||||
|
||||
urlGithubCommit: (->
|
||||
Travis.Urls.githubCommit(@get('repo.slug'), @get('commit.sha'))
|
||||
).property('repo.slug', 'commit.sha')
|
||||
|
|
|
@ -13,10 +13,6 @@
|
|||
Travis.Helpers.colorForState(@get('job.state'))
|
||||
).property('job.state')
|
||||
|
||||
urlJob: (->
|
||||
Travis.Urls.job(@get('repo.slug'), @get('job.id'))
|
||||
).property('repo.slug', 'job.id')
|
||||
|
||||
JobView: Travis.View.extend
|
||||
templateName: 'jobs/show'
|
||||
|
||||
|
@ -30,10 +26,6 @@
|
|||
Travis.Helpers.colorForState(@get('job.state'))
|
||||
).property('job.state')
|
||||
|
||||
urlJob: (->
|
||||
Travis.Urls.job(@get('repo.slug'), @get('job.id'))
|
||||
).property('repo.slug', 'job.id')
|
||||
|
||||
urlGithubCommit: (->
|
||||
Travis.Urls.githubCommit(@get('repo.slug'), @get('commit.sha'))
|
||||
).property('repo.slug', 'commit.sha')
|
||||
|
@ -50,6 +42,11 @@
|
|||
templateName: 'jobs/log'
|
||||
logBinding: 'job.log'
|
||||
|
||||
plainTextLogUrl: (->
|
||||
if id = @get('job.log.id')
|
||||
Travis.Urls.plainTextLog(id)
|
||||
).property('job.log')
|
||||
|
||||
didInsertElement: ->
|
||||
@_super.apply this, arguments
|
||||
@tryScrollingToHashLineNumber()
|
||||
|
@ -186,7 +183,7 @@
|
|||
unless payload.append
|
||||
pathWithNumber = "#{url}#L#{number}"
|
||||
p = document.createElement('p')
|
||||
p.innerHTML = '<a href="%@" id="L%@" class="log-line-number" name="L%@">%@</a>%@'.fmt(pathWithNumber, number, number, number, line)
|
||||
p.innerHTML = '<a href="%@" id="L%@" class="log-line-number">%@</a>%@'.fmt(pathWithNumber, number, number, line)
|
||||
line = p
|
||||
|
||||
if payload.fold && !payload.foldContinuation
|
||||
|
|
|
@ -19,14 +19,6 @@
|
|||
Travis.Helpers.colorForState(@get('repo.lastBuildState'))
|
||||
).property('repo.lastBuildState')
|
||||
|
||||
urlRepo: (->
|
||||
Travis.Urls.repo(@get('repo.slug'))
|
||||
).property('repo.slug')
|
||||
|
||||
urlLastBuild: (->
|
||||
Travis.Urls.build(@get('repo.slug'), @get('repo.lastBuildId'))
|
||||
).property('repo.slug', 'repo.lastBuildId')
|
||||
|
||||
ReposListTabsView: Travis.View.extend
|
||||
templateName: 'repos/list/tabs'
|
||||
tabBinding: 'controller.tab'
|
||||
|
|
|
@ -140,6 +140,20 @@
|
|||
@get('isJobTab') && @get('job.isFinished') && @get('hasPermission')
|
||||
).property('isJobTab', 'job.isFinished', 'hasPermissions')
|
||||
|
||||
showDownloadLog: (->
|
||||
@get('logId')
|
||||
).property('logId')
|
||||
|
||||
logId: (->
|
||||
@get('job.log.id') ||
|
||||
(@get('build.jobs.length') == 1 && @get('build.jobs.firstObject.log.id'))
|
||||
).property('job.log.id', 'build.jobs.firstObject.log.id', 'build.jobs.length')
|
||||
|
||||
plainTextLogUrl: (->
|
||||
if id = @get('logId')
|
||||
Travis.Urls.plainTextLog(id)
|
||||
).property('logId')
|
||||
|
||||
canCancelBuild: (->
|
||||
# @get('isBuildTab') && @get('build.canCancel') && @get('hasPermission')
|
||||
false
|
||||
|
@ -173,26 +187,29 @@
|
|||
@get('repo.branches') if @get('active')
|
||||
).property('active', 'repo.branches')
|
||||
|
||||
urlRepo: (->
|
||||
'https://' + location.host + Travis.Urls.repo(@get('repo.slug'))
|
||||
).property('repo.slug')
|
||||
setStatusImageBranch: (->
|
||||
if @get('repo.branches.isLoaded')
|
||||
@set('statusImageBranch', @get('repo.branches').findProperty('commit.branch', @get('build.commit.branch')))
|
||||
else
|
||||
@set('statusImageBranch', null)
|
||||
).observes('repo.branches', 'repo.branches.isLoaded', 'build.commit.branch')
|
||||
|
||||
urlStatusImage: (->
|
||||
Travis.Urls.statusImage(@get('repo.slug'), @get('branch.commit.branch'))
|
||||
).property('repo.slug', 'branch')
|
||||
statusImageUrl: (->
|
||||
Travis.Urls.statusImage(@get('repo.slug'), @get('statusImageBranch.commit.branch'))
|
||||
).property('repo.slug', 'statusImageBranch')
|
||||
|
||||
markdownStatusImage: (->
|
||||
"[})](#{@get('urlRepo')})"
|
||||
).property('urlStatusImage')
|
||||
"[})](#{@get('urlRepo')})"
|
||||
).property('statusImageUrl')
|
||||
|
||||
textileStatusImage: (->
|
||||
"!#{@get('urlStatusImage')}!:#{@get('urlRepo')}"
|
||||
).property('urlStatusImage')
|
||||
"!#{@get('statusImageUrl')}!:#{@get('urlRepo')}"
|
||||
).property('statusImageUrl')
|
||||
|
||||
rdocStatusImage: (->
|
||||
"{<img src=\"#{@get('urlStatusImage')}\" alt=\"Build Status\" />}[#{@get('urlRepo')}]"
|
||||
).property('urlStatusImage')
|
||||
"{<img src=\"#{@get('statusImageUrl')}\" alt=\"Build Status\" />}[#{@get('urlRepo')}]"
|
||||
).property('statusImageUrl')
|
||||
|
||||
asciidocStatusImage: (->
|
||||
"image:#{@get('urlStatusImage')}[\"Build Status\", link=\"#{@get('urlRepo')}\"]"
|
||||
).property('urlStatusImage')
|
||||
"image:#{@get('statusImageUrl')}[\"Build Status\", link=\"#{@get('urlRepo')}\"]"
|
||||
).property('statusImageUrl')
|
||||
|
|
File diff suppressed because one or more lines are too long
8
assets/scripts/lib/travis/instrumentation.coffee
Normal file
8
assets/scripts/lib/travis/instrumentation.coffee
Normal file
|
@ -0,0 +1,8 @@
|
|||
Travis.Instrumentation = {
|
||||
subscribe: (event) ->
|
||||
Em.subscribe event,
|
||||
before:(name, timestamp, payload) ->
|
||||
timestamp
|
||||
after: (name, timestamp, payload, start_timestamp) ->
|
||||
console.log(name, payload, timestamp - start_timestamp)
|
||||
}
|
|
@ -15,6 +15,8 @@ FOLDS = [
|
|||
@addFold fold
|
||||
|
||||
append: (lines) ->
|
||||
return unless lines
|
||||
|
||||
log = @join lines
|
||||
log = @escape log
|
||||
log = @deansi log
|
||||
|
@ -122,7 +124,7 @@ FOLDS = [
|
|||
.replace(/\033\[K\r/g, '\r')
|
||||
.replace(/\[2K/g, '')
|
||||
.replace(/\033\(B/g, '')
|
||||
.replace(/\033\[\d+G/, '')
|
||||
.replace(/\033\[\d+G/g, '')
|
||||
|
||||
ansi = ansiparse(log)
|
||||
|
||||
|
|
|
@ -93,7 +93,7 @@ Storage = Em.Object.extend
|
|||
location.href = location.href.replace('#!/', '') if location.hash.slice(0, 2) == '#!'
|
||||
|
||||
I18n.fallbacks = true
|
||||
Travis.setLocale 'locale', @defualt_locale
|
||||
Travis.setLocale 'locale', @default_locale
|
||||
|
||||
Ember.run.next this, ->
|
||||
app = Travis.App.create(attrs || {})
|
||||
|
|
|
@ -1,12 +1,5 @@
|
|||
@import "_mixins/all"
|
||||
|
||||
@font-face
|
||||
font-family: 'Glyphicons Halflings'
|
||||
src: url('/fonts/glyphiconshalflings-regular.eot')
|
||||
src: url('/fonts/glyphiconshalflings-regular.eot?#iefix') format('embedded-opentype'), url('/fonts/glyphiconshalflings-regular.woff') format('woff'), url('/fonts/glyphiconshalflings-regular.ttf') format('truetype'), url('/fonts/glyphiconshalflings-regular.svg#glyphicons_halflingsregular') format('svg')
|
||||
font-weight: normal
|
||||
font-style: normal
|
||||
|
||||
html, body
|
||||
font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif
|
||||
font-size: $font-size-small
|
||||
|
|
|
@ -43,7 +43,6 @@
|
|||
table.list
|
||||
tbody
|
||||
td
|
||||
cursor: pointer
|
||||
background-color: $color-bg-job
|
||||
tr:hover td
|
||||
background-color: $color-bg-job-highlight
|
||||
|
|
|
@ -18,8 +18,9 @@ en:
|
|||
messages:
|
||||
sponsored_by: This test series was run on a worker box sponsored by
|
||||
name: Build
|
||||
pr: PR
|
||||
started_at: Started
|
||||
state: state
|
||||
state: State
|
||||
datetime:
|
||||
distance_in_words:
|
||||
hours_exact:
|
||||
|
@ -52,9 +53,9 @@ en:
|
|||
message: Message
|
||||
messages:
|
||||
sponsored_by: This test series was run on a worker box sponsored by
|
||||
sponsored_by:
|
||||
sponsored_by: Sponsored by
|
||||
started_at: Started
|
||||
state: state
|
||||
state: State
|
||||
layouts:
|
||||
about:
|
||||
alpha: This stuff is alpha.
|
||||
|
@ -84,7 +85,7 @@ en:
|
|||
job: Job
|
||||
log: Log
|
||||
top:
|
||||
accounts: accounts
|
||||
accounts: Accounts
|
||||
admin: Admin
|
||||
blog: Blog
|
||||
docs: Docs
|
||||
|
@ -92,7 +93,7 @@ en:
|
|||
home: Home
|
||||
profile: Profile
|
||||
sign_out: Sign Out
|
||||
signing_in: signing_in
|
||||
signing_in: Signing In
|
||||
stats: Stats
|
||||
locales:
|
||||
ca:
|
||||
|
@ -153,6 +154,6 @@ en:
|
|||
total_builds: Total Builds
|
||||
total_projects: Total Projects/Repositories
|
||||
user:
|
||||
failure:
|
||||
signed_out:
|
||||
failure: failure
|
||||
signed_out: Signed Out
|
||||
workers: Workers
|
||||
|
|
|
@ -18,6 +18,7 @@ es:
|
|||
messages:
|
||||
sponsored_by: Esta serie de tests han sido ejecutados en una caja de Proceso patrocinada por
|
||||
name: Build
|
||||
pr:
|
||||
started_at: Iniciado
|
||||
state:
|
||||
datetime:
|
||||
|
|
|
@ -18,6 +18,7 @@ fr:
|
|||
messages:
|
||||
sponsored_by: Cette série de tests a été exécutée sur une machine sponsorisée par
|
||||
name: Version
|
||||
pr:
|
||||
started_at: Commencé
|
||||
state:
|
||||
datetime:
|
||||
|
|
|
@ -18,6 +18,7 @@ ja:
|
|||
messages:
|
||||
sponsored_by: このテストは以下のスポンサーの協力で行いました。
|
||||
name: ビルド
|
||||
pr:
|
||||
started_at: 開始時刻
|
||||
state:
|
||||
datetime:
|
||||
|
|
|
@ -18,6 +18,7 @@ nb:
|
|||
messages:
|
||||
sponsored_by: Denne testen ble kjørt på en maskin sponset av
|
||||
name: Jobb
|
||||
pr:
|
||||
started_at: Startet
|
||||
state:
|
||||
datetime:
|
||||
|
|
|
@ -7,7 +7,7 @@ nl:
|
|||
allowed_failures: Toegestane mislukkingen
|
||||
author: Auteur
|
||||
branch: Tak
|
||||
build_matrix: Bouw Matrix
|
||||
build_matrix: Bouw matrix
|
||||
commit: Commit
|
||||
committer: Committer
|
||||
compare: Vergelijk
|
||||
|
@ -18,6 +18,7 @@ nl:
|
|||
messages:
|
||||
sponsored_by: Deze tests zijn gedraaid op een machine gesponsord door
|
||||
name: Bouw
|
||||
pr:
|
||||
started_at: Gestart
|
||||
state:
|
||||
datetime:
|
||||
|
@ -84,7 +85,7 @@ nl:
|
|||
job: Taak
|
||||
log: Logboek
|
||||
top:
|
||||
accounts:
|
||||
accounts: accounts
|
||||
admin: Administratie
|
||||
blog: Blog
|
||||
docs: Documentatie
|
||||
|
@ -110,7 +111,7 @@ nl:
|
|||
show:
|
||||
email: Email adres
|
||||
github: Github
|
||||
locale:
|
||||
locale: Taal
|
||||
message:
|
||||
config: hoe eigen bouw-opties in te stellen
|
||||
your_repos: ! 'Zet de schakelaars hieronder aan om de Travis hook voor uw projecten te activeren en push daarna naar Github<br />
|
||||
|
@ -141,7 +142,7 @@ nl:
|
|||
build_history: Bouw geschiedenis
|
||||
current: Huidig
|
||||
job: Taak
|
||||
pull_requests:
|
||||
pull_requests: Pull Requests
|
||||
test:
|
||||
textile: Textile
|
||||
repository:
|
||||
|
|
|
@ -4,7 +4,7 @@ pl:
|
|||
finished_at: Zakończono
|
||||
job: Zadanie
|
||||
builds:
|
||||
allowed_failures: Dopuszczalne Niepowodzenia
|
||||
allowed_failures: Akceptowalne Niepowodzenia
|
||||
author: Autor
|
||||
branch: Gałąź
|
||||
build_matrix: Macierz Buildów
|
||||
|
@ -18,33 +18,37 @@ pl:
|
|||
messages:
|
||||
sponsored_by: Te testy zostały uruchomione na maszynie sponsorowanej przez
|
||||
name: Build
|
||||
pr:
|
||||
started_at: Rozpoczęto
|
||||
state:
|
||||
state: status
|
||||
datetime:
|
||||
distance_in_words:
|
||||
hours_exact:
|
||||
few: ! '%{count} godzin'
|
||||
one: ! '%{count} godzina'
|
||||
other: ! '%{count} godziny'
|
||||
minutes_exact:
|
||||
few: ! '%{count} minut'
|
||||
one: ! '%{count} minuta'
|
||||
other: ! '%{count} minuty'
|
||||
seconds_exact:
|
||||
few: ! '%{count} sekund'
|
||||
one: ! '%{count} sekunda'
|
||||
other: ! '%{count} sekundy'
|
||||
errors:
|
||||
messages:
|
||||
already_confirmed:
|
||||
not_found:
|
||||
not_locked:
|
||||
already_confirmed: został już potwierdzony
|
||||
not_found: nie znaleziono
|
||||
not_locked: nie został zablokowany
|
||||
home:
|
||||
name:
|
||||
name: główna
|
||||
jobs:
|
||||
allowed_failures: Dopuszczalne Niepowodzenia
|
||||
author: Autor
|
||||
branch: Gałąź
|
||||
build_matrix: Macierz Buildów
|
||||
commit: Commit
|
||||
committer: Committer
|
||||
committer: Komitujący
|
||||
compare: Porównanie
|
||||
config: Konfiguracja
|
||||
duration: Czas trwania
|
||||
|
@ -54,19 +58,19 @@ pl:
|
|||
sponsored_by: Te testy zostały uruchomione na maszynie sponsorowanej przez
|
||||
sponsored_by: Te testy zostały uruchomione na maszynie sponsorowanej przez
|
||||
started_at: Rozpoczęto
|
||||
state:
|
||||
state: status
|
||||
layouts:
|
||||
about:
|
||||
alpha: To wciąż jest wersja alpha.
|
||||
join: Pomóż i dołącz do nas!
|
||||
mailing_list: Lista mailingowa
|
||||
join: Dołącz do nas i pomóż!
|
||||
mailing_list: Lista Mailingowa
|
||||
messages:
|
||||
alpha: Proszę <strong>nie</strong> traktuj tego jako stabilnej usługi. Wciąż nam wiele do tego brakuje! Więcej informacji znajdziesz <a href='https://github.com/travis-ci'>tutaj.</a>
|
||||
repository: Repozytorium
|
||||
twitter: Twitter
|
||||
application:
|
||||
fork_me: Fork me on Github
|
||||
my_repositories: Moje repozytoria
|
||||
my_repositories: Moje Repozytoria
|
||||
recent: Ostatnie
|
||||
search: Wyniki
|
||||
sponsers: Sponsorzy
|
||||
|
@ -84,18 +88,18 @@ pl:
|
|||
job: Zadanie
|
||||
log: Log
|
||||
top:
|
||||
accounts:
|
||||
admin:
|
||||
accounts: Konta
|
||||
admin: Admin
|
||||
blog: Blog
|
||||
docs: Dokumentacja
|
||||
github_login: Zaloguj się przy pomocy Githuba
|
||||
home: Start
|
||||
profile: Profil
|
||||
sign_out: Wyloguj się
|
||||
signing_in:
|
||||
signing_in: Zaloguj się
|
||||
stats: Statystki
|
||||
locales:
|
||||
ca:
|
||||
ca: Čeština
|
||||
en: English
|
||||
es: Español
|
||||
fr: Français
|
||||
|
@ -108,27 +112,29 @@ pl:
|
|||
no_job: Brak zadań
|
||||
profiles:
|
||||
show:
|
||||
email: Email
|
||||
email: E-mail
|
||||
github: Github
|
||||
locale:
|
||||
locale: język
|
||||
message:
|
||||
config: jak skonfigurować niestandardowe opcje builda
|
||||
your_repos: ! " Przesuń suwak poniżej, aby włączyć Travisa, dla twoich projektów, a następnie umieść swój kod na GitHubie.<br />\n Aby testować swój kod przy użyciu wielu wersji Rubiego, zobacz"
|
||||
your_repos: ! 'Przesuń suwak poniżej, aby włączyć Travisa dla twoich projektów, a następnie umieść swój kod na GitHubie.<br />
|
||||
|
||||
Aby testować swój kod przy użyciu wielu wersji Rubiego, zobacz'
|
||||
messages:
|
||||
notice: ! "Aby zacząć, przeczytaj nasz <a href=\"http://about.travis-ci.org/docs/user/getting-started/\">Przewodnik </a>.\n <small>Zajmie ci to tylko kilka minut.</small>"
|
||||
notice: ! "Aby zacząć, przeczytaj nasz <a href=\"http://about.travis-ci.org/docs/user/getting-started/\">Przewodnik</a>.\n <small>Zajmie ci to tylko kilka minut.</small>"
|
||||
token: Token
|
||||
update:
|
||||
update_locale:
|
||||
your_locale:
|
||||
your_repos: Twoje repozytoria
|
||||
update: Zmień
|
||||
update_locale: Zmień
|
||||
your_locale: Twój Język
|
||||
your_repos: Twoje Repozytoria
|
||||
queue: Kolejka
|
||||
repositories:
|
||||
asciidoc:
|
||||
asciidoc: AsciiDoc
|
||||
branch: Gałąź
|
||||
commit: Commit
|
||||
duration: Czas trwania
|
||||
finished_at: Zakończono
|
||||
image_url: URL obrazka
|
||||
image_url: URL Obrazka
|
||||
markdown: Markdown
|
||||
message: Opis
|
||||
rdoc: RDOC
|
||||
|
@ -139,20 +145,20 @@ pl:
|
|||
build_history: Historia Buildów
|
||||
current: Aktualny
|
||||
job: Zadanie
|
||||
pull_requests:
|
||||
pull_requests: Pull Requesty
|
||||
test:
|
||||
textile: Textile
|
||||
repository:
|
||||
duration:
|
||||
duration: Czas trwania
|
||||
statistics:
|
||||
index:
|
||||
build_count: Liczba buildów
|
||||
count: Ilość
|
||||
last_month: ostatni miesiąc
|
||||
repo_growth: Przyrost repozytoriów
|
||||
repo_growth: Przyrost Repozytoriów
|
||||
total_builds: Łącznie Buildów
|
||||
total_projects: Łącznie projektów/repozytoriów
|
||||
total_projects: Łącznie Projektów/Repozytoriów
|
||||
user:
|
||||
failure:
|
||||
signed_out:
|
||||
workers: Workers
|
||||
failure: niepowodzenie
|
||||
signed_out: Wyloguj
|
||||
workers: Workery
|
||||
|
|
|
@ -18,6 +18,7 @@ pt-BR:
|
|||
messages:
|
||||
sponsored_by: Esta série de testes foi executada em uma caixa de processos patrocinada por
|
||||
name: Build
|
||||
pr:
|
||||
started_at: Iniciou em
|
||||
state:
|
||||
datetime:
|
||||
|
|
|
@ -18,8 +18,9 @@ ru:
|
|||
messages:
|
||||
sponsored_by: Эта серия тестов была запущена на машине, спонсируемой
|
||||
name: Билд
|
||||
pr:
|
||||
started_at: Начало
|
||||
state:
|
||||
state: состояние
|
||||
datetime:
|
||||
distance_in_words:
|
||||
hours_exact:
|
||||
|
@ -58,9 +59,9 @@ ru:
|
|||
message: Комментарий
|
||||
messages:
|
||||
sponsored_by: Эта серия тестов была запущена на машине спонсируемой
|
||||
sponsored_by:
|
||||
sponsored_by: Спонсоры
|
||||
started_at: Начало
|
||||
state:
|
||||
state: состояние
|
||||
layouts:
|
||||
about:
|
||||
alpha: Это альфа-версия
|
||||
|
@ -90,7 +91,7 @@ ru:
|
|||
job: Задача
|
||||
log: Журнал
|
||||
top:
|
||||
accounts:
|
||||
accounts: аккаунты
|
||||
admin: Управление
|
||||
blog: Блог
|
||||
docs: Документация
|
||||
|
@ -98,7 +99,7 @@ ru:
|
|||
home: Главная
|
||||
profile: Профиль
|
||||
sign_out: Выход
|
||||
signing_in:
|
||||
signing_in: авторизация
|
||||
stats: Статистика
|
||||
locales:
|
||||
ca:
|
||||
|
@ -116,7 +117,7 @@ ru:
|
|||
show:
|
||||
email: Электронная почта
|
||||
github: Github
|
||||
locale:
|
||||
locale: Язык
|
||||
message:
|
||||
config: как настроить специальные опции билда
|
||||
your_repos: ! 'Используйте переключатели, чтобы включить Travis service hook для вашего проекта, а потом отправьте код на GitHub.<br />
|
||||
|
@ -131,7 +132,7 @@ ru:
|
|||
your_repos: Ваши репозитории
|
||||
queue: Очередь
|
||||
repositories:
|
||||
asciidoc:
|
||||
asciidoc: asciidoc
|
||||
branch: Ветка
|
||||
commit: Коммит
|
||||
duration: Длительность
|
||||
|
|
|
@ -6,6 +6,10 @@
|
|||
<meta name="travis.pusher_key" value="23ed642e81512118260e">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<title>Travis CI - Free Hosted Continuous Integration Platform for the Open Source Community</title>
|
||||
<link rel="dns-prefetch" href="//api.travis-ci.org">
|
||||
<link rel="dns-prefetch" href="//ws.pusherapp.com">
|
||||
<link rel="dns-prefetch" href="//api.github.com">
|
||||
<link rel="dns-prefetch" href="//www.gravatar.com">
|
||||
<link rel="icon" type="image/png" href="/favicon.ico">
|
||||
<link rel="stylesheet" href="/styles/app.css">
|
||||
<script src="/scripts/app.js"></script>
|
||||
|
|
Loading…
Reference in New Issue
Block a user