mirror of https://github.com/rancher/ui.git
73 lines
2.3 KiB
JavaScript
73 lines
2.3 KiB
JavaScript
import { inject as service } from '@ember/service';
|
|
import Route from '@ember/routing/route';
|
|
import { hash } from 'rsvp';
|
|
|
|
let precanStages = ()=> [{
|
|
name: 'clone',
|
|
steps: []
|
|
},{
|
|
name: 'build',
|
|
steps: []
|
|
},{
|
|
name: 'publish',
|
|
steps: [{
|
|
type:"build",
|
|
"publishImageConfig": {
|
|
"dockerfilePath": "./Dockerfile",
|
|
"buildContext": ".",
|
|
"tag": "pipeline/build:${CICD_PIPELINE_ID}"
|
|
}
|
|
}]
|
|
}];
|
|
export default Route.extend({
|
|
globalStore: service(),
|
|
projectStore: service('store'),
|
|
precanStages: precanStages(),
|
|
model: function() {
|
|
var globalStore = this.get('globalStore');
|
|
var projectStore = this.get('projectStore');
|
|
let projectModel = window.l('route:application').modelFor('authenticated.project');
|
|
let projectId = projectModel.project.id;
|
|
let clusterId = projectModel.project.clusterId;
|
|
let accounts = globalStore.findAll('sourceCodeCredential');
|
|
let clusterPipeline = globalStore.find('clusterPipeline', `${clusterId}:${clusterId}`, {forceReload: true});
|
|
let projectDockerCredentials = projectStore.all('dockerCredential');
|
|
return clusterPipeline.then((pipeline)=>{
|
|
clusterPipeline = pipeline;
|
|
return clusterPipeline.followLink('envvars')
|
|
}).then((envvars)=>{
|
|
return hash({accounts, clusterPipeline, projectDockerCredentials,envvars})
|
|
})
|
|
.then(({accounts, clusterPipeline, projectDockerCredentials, envvars})=>{
|
|
let pipeline = globalStore.createRecord({type:'pipeline', projectId , stages: this.get('precanStages')});
|
|
if(!accounts.content.length){
|
|
return {
|
|
pipeline,
|
|
accounts,
|
|
clusterPipeline,
|
|
projectDockerCredentials,
|
|
envvars,
|
|
repositories: [],
|
|
language: 'Custom'
|
|
};
|
|
}else{
|
|
return accounts.content[0].followLink('sourceCodeRepositories').then(res=>{
|
|
return {
|
|
pipeline,
|
|
accounts,
|
|
clusterPipeline,
|
|
projectDockerCredentials,
|
|
envvars,
|
|
repositories: res,
|
|
language: 'Custom'
|
|
}
|
|
})
|
|
}
|
|
})
|
|
},
|
|
resetController(controller){
|
|
controller.set('errors', '');
|
|
controller.set('saved', false);
|
|
this.set('precanStages',precanStages())
|
|
},
|
|
}); |