summary refs log blame commit diff
path: root/.circleci/config.yml
blob: 137747dae3f2480fe0500f247a8f2cf28690b75e (plain) (tree)
1
2
3
4
5
6
7
8
9
          
                         

                 
                                                                                                                                                                                              
                                                                                         
                                                           
                                                               
                                                               


                        
                                                                                                                                                                                
                                                                                         
                                                    
                                                        
                                                        
            

                                             
                
                               
                        
                     
                           
                           
                     
                    

                                             
                
                                          
                        
                     
                           
                           
                     
                  

                                             

                                                
                               
                        
                     
                           
                     
                          

                                             

                                                
                                          
                        
                     
                           
                     
 
            

                                             
                
                               
                        
                     
                           
                           
                     
                    

                                             
                
                                          
                        
                     
                           
                           
                     
                  

                                             

                                                
                               
                        
                     
                           
                     
                          

                                             

                                                
                                          
                        
                     
                           
                     



            














                                               

                        
                                                 

                                
                                                 

                        
                                                 

                                
                                                 
                               
                  
                                            
                          


                              
version: 2
jobs:
  dockerhubuploadrelease:
    machine: true
    steps:
      - checkout
      - run: docker build -f docker/Dockerfile --label gitsha1=${CIRCLE_SHA1} -t matrixdotorg/synapse:${CIRCLE_TAG}-py2 .
      - run: docker build -f docker/Dockerfile --label gitsha1=${CIRCLE_SHA1} -t matrixdotorg/synapse:${CIRCLE_TAG} -t matrixdotorg/synapse:${CIRCLE_TAG}-py3 --build-arg PYTHON_VERSION=3.6 .
      - run: docker login --username $DOCKER_HUB_USERNAME --password $DOCKER_HUB_PASSWORD
      - run: docker push matrixdotorg/synapse:${CIRCLE_TAG}
      - run: docker push matrixdotorg/synapse:${CIRCLE_TAG}-py2
      - run: docker push matrixdotorg/synapse:${CIRCLE_TAG}-py3
  dockerhubuploadlatest:
    machine: true
    steps:
      - checkout
      - run: docker build -f docker/Dockerfile --label gitsha1=${CIRCLE_SHA1} -t matrixdotorg/synapse:latest-py2 .
      - run: docker build -f docker/Dockerfile --label gitsha1=${CIRCLE_SHA1} -t matrixdotorg/synapse:latest -t matrixdotorg/synapse:latest-py3 --build-arg PYTHON_VERSION=3.6 .
      - run: docker login --username $DOCKER_HUB_USERNAME --password $DOCKER_HUB_PASSWORD
      - run: docker push matrixdotorg/synapse:latest
      - run: docker push matrixdotorg/synapse:latest-py2
      - run: docker push matrixdotorg/synapse:latest-py3
  sytestpy2:
    docker:
      - image: matrixdotorg/sytest-synapsepy2
    working_directory: /src
    steps:
      - checkout
      - run: /synapse_sytest.sh
      - store_artifacts:
          path: /logs
          destination: logs
      - store_test_results:
          path: /logs
  sytestpy2postgres:
    docker:
      - image: matrixdotorg/sytest-synapsepy2
    working_directory: /src
    steps:
      - checkout
      - run: POSTGRES=1 /synapse_sytest.sh
      - store_artifacts:
          path: /logs
          destination: logs
      - store_test_results:
          path: /logs
  sytestpy2merged:
    docker:
      - image: matrixdotorg/sytest-synapsepy2
    working_directory: /src
    steps:
      - checkout
      - run: bash .circleci/merge_base_branch.sh
      - run: /synapse_sytest.sh
      - store_artifacts:
          path: /logs
          destination: logs
      - store_test_results:
          path: /logs
  sytestpy2postgresmerged:
    docker:
      - image: matrixdotorg/sytest-synapsepy2
    working_directory: /src
    steps:
      - checkout
      - run: bash .circleci/merge_base_branch.sh
      - run: POSTGRES=1 /synapse_sytest.sh
      - store_artifacts:
          path: /logs
          destination: logs
      - store_test_results:
          path: /logs

  sytestpy3:
    docker:
      - image: matrixdotorg/sytest-synapsepy3
    working_directory: /src
    steps:
      - checkout
      - run: /synapse_sytest.sh
      - store_artifacts:
          path: /logs
          destination: logs
      - store_test_results:
          path: /logs
  sytestpy3postgres:
    docker:
      - image: matrixdotorg/sytest-synapsepy3
    working_directory: /src
    steps:
      - checkout
      - run: POSTGRES=1 /synapse_sytest.sh
      - store_artifacts:
          path: /logs
          destination: logs
      - store_test_results:
          path: /logs
  sytestpy3merged:
    docker:
      - image: matrixdotorg/sytest-synapsepy3
    working_directory: /src
    steps:
      - checkout
      - run: bash .circleci/merge_base_branch.sh
      - run: /synapse_sytest.sh
      - store_artifacts:
          path: /logs
          destination: logs
      - store_test_results:
          path: /logs
  sytestpy3postgresmerged:
    docker:
      - image: matrixdotorg/sytest-synapsepy3
    working_directory: /src
    steps:
      - checkout
      - run: bash .circleci/merge_base_branch.sh
      - run: POSTGRES=1 /synapse_sytest.sh
      - store_artifacts:
          path: /logs
          destination: logs
      - store_test_results:
          path: /logs

workflows:
  version: 2
  build:
    jobs:
      - sytestpy2:
          filters:
            branches:
              only: /develop|master|release-.*/
      - sytestpy2postgres:
          filters:
            branches:
              only: /develop|master|release-.*/
      - sytestpy3:
          filters:
            branches:
              only: /develop|master|release-.*/
      - sytestpy3postgres:
          filters:
            branches:
              only: /develop|master|release-.*/
      - sytestpy2merged:
          filters:
            branches:
              ignore: /develop|master|release-.*/
      - sytestpy2postgresmerged:
          filters:
            branches:
              ignore: /develop|master|release-.*/
      - sytestpy3merged:
          filters:
            branches:
              ignore: /develop|master|release-.*/
      - sytestpy3postgresmerged:
          filters:
            branches:
              ignore: /develop|master|release-.*/
      - dockerhubuploadrelease:
          filters:
            tags:
              only: /v[0-9].[0-9]+.[0-9]+.*/
            branches:
              ignore: /.*/
      - dockerhubuploadlatest:
          filters:
            branches:
              only: master