github.com/braveheart12/just@v0.8.7/ci/site.yml (about) 1 groups: 2 - name: master 3 jobs: 4 - build 5 - insolar-io 6 # - update-cloudlare-cache 7 8 resource_types: 9 - name: kubernetes 10 type: docker-image 11 source: 12 repository: zlabjp/kubernetes-resource 13 tag: "1.11" 14 15 resources: 16 - name: master 17 type: git 18 source: 19 #uri: ssh://git@gitlab.corp.code-pilots.ru:22222/its/Insolar.git 20 uri: git@github.com:insolar/insolar-io-frontend.git 21 branch: master 22 #private_key: ((meta.github.private_key)) 23 private_key: ((meta.github.site_key)) 24 25 - name: tags 26 type: git 27 source: 28 uri: git@github.com:insolar/insolar-io-frontend.git 29 #uri: ssh://git@gitlab.corp.code-pilots.ru:22222/its/Insolar.git 30 branch: master 31 private_key: ((meta.github.site_key)) 32 #private_key: ((meta.github.private_key)) 33 tag_filter: '*' 34 35 - name: docker-builder 36 type: docker-image 37 source: 38 repository: registry.insolar.io/site 39 username: ((meta.registry.username)) 40 password: ((meta.registry.password)) 41 42 - name: deploy 43 type: kubernetes 44 source: 45 server: https://kube.insolar.io:6443 46 token: ((meta.kubernetes.insolar-io-token)) 47 certificate_authority: ((meta.kubernetes.ca)) 48 #kubeconfig: ((meta.kubernetes.site-config)) 49 50 51 52 jobs: 53 - name: build 54 public: true 55 plan: 56 - get: master 57 trigger: true 58 - get: docker-builder 59 trigger: false 60 params: 61 save: true 62 - task: build 63 timeout: 10m 64 config: 65 platform: linux 66 image_resource: 67 type: docker-image 68 source: {repository: alpine/git} 69 inputs: 70 - name: master 71 outputs: 72 - name: site 73 run: 74 path: sh 75 args: 76 - -exc 77 - | 78 cp master/.git/short_ref site/docker-tag 79 cd master 80 git tag -l --points-at HEAD > ../site/prod-tag 81 cd ../ 82 83 echo create Dockerfile 84 cat << EOF > master/Dockerfile 85 FROM node:8-alpine as builder 86 ADD . /site 87 WORKDIR /site 88 RUN rm -Rf dist/* && npm i && npm run build 89 90 FROM nginx:alpine as site 91 COPY --from=builder /site/dist /usr/share/nginx/html 92 EOF 93 cat master/Dockerfile 94 rm -Rf master/dist/* 95 mv master/* site/ 96 ls -alh 97 ls -alh site 98 env 99 - put: docker-builder 100 get_params: {skip_download: true} 101 params: 102 load_base: docker-builder 103 build: site 104 target: site 105 tag_file: site/docker-tag 106 additional_tags: site/prod-tag 107 tag_as_latest: true 108 - put: deploy 109 params: 110 namespace: insolar-io 111 kubectl: | 112 patch deployment dev-insolar-io -p '{"spec":{"template":{"spec":{"containers":[{"name":"dev-insolar-io","image":"registry.insolar.io/site:'$(cat master/.git/short_ref)'"}]}}}}' 113 wait_until_ready_selector: app=site 114 wait_until_ready: 60 115 - name: insolar-io 116 public: true 117 plan: 118 - aggregate: 119 - get: docker-builder 120 trigger: false 121 params: 122 save: true 123 passed: 124 - build 125 - get: tags 126 trigger: false 127 - task: build 128 timeout: 10m 129 config: 130 platform: linux 131 image_resource: 132 type: docker-image 133 source: {repository: alpine/git} 134 inputs: 135 - name: docker-builder 136 - name: tags 137 outputs: 138 - name: artifacts 139 run: 140 path: sh 141 args: 142 - -exc 143 - | 144 echo 145 ls -alh . 146 ls -alh docker-builder 147 cat docker-builder/tag 148 cat docker-builder/image-id 149 TAG=$(cd tags && git tag -l --points-at HEAD && cd ../) 150 echo $TAG > artifacts/tag 151 echo deploy $TAG 152 - put: docker-builder 153 get_params: {skip_download: true} 154 params: 155 additional_tags: artifacts/tag 156 load: docker-builder 157 - put: deploy 158 params: 159 namespace: insolar-io 160 kubectl: | 161 patch deployment insolar-io -p '{"spec":{"template":{"spec":{"containers":[{"name":"insolar-io","image":"registry.insolar.io/site:'$(cat artifacts/tag)'"}]}}}}' 162 wait_until_ready_selector: app=insolar-io 163 wait_until_ready: 90 164 #get deploy $(cat artifacts/tag) 165 166 167