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