aboutsummaryrefslogblamecommitdiff
path: root/.drone.yml
blob: f76e162dcda5e3b3dbf244997be6cbdd78bdcad3 (plain) (tree)
1
2
3
4
5
6
7
8
   


              
          
                     
 
        



                            

          


                     
      













                                                                                                                                
            




                      
                                                                                                                  
 
                      
                                  
            



                      
             

                                                                     
 
               
                                  
            



                      
             
                                                                                              
                                                                               
 
                           
                                  

                                                    
            



                      
             
                                                     







                                   
 
                    
                                  
            




                      
                                                                                              
                                                                                                 
 







                

              
            
                         







                            
      
                          
                                  

                     
                


                      


                                                                                                                                

               
                                  





                      
                                                                                                
                                                                               

                     
                                  





                      
                                                                                                 
 
                            
                                  




                      

                        
                                               
                            

                                                   
                                              

                                  
                                  




                      





                                           
             


                                                        
                                                  






           


              
                        







                            
      
                          
                                  

                     
                


                      


                                                                                                                                

               
                                  





                      
                                                                                               
                                                                               

                     
                                  





                      
                                                                                                 

                            
                                  










                                                   
                                              

                                  
                                  







                                

                                         




                                                        
                                                  
 




           


              
                         







                            
      
                          
                                  

                     
                


                      


                                                                                                                                

               
                                  





                      
                                                                                                
                                                                               
 
                            
                                  




                      

                        
                                               
                            

                                                   
                                              

                                  
                                  




                      





                                           
             


                                                        
                                                  





           


              
                       







                            
      
                          
                                  

                     
                


                      


                                                                                                                                

               
                                  





                      
                                                                                              
                                                                               

                            
                                  










                                                   
                                              

                                  
                                  







                                

                                         




                                                        
                                                  





           











                            
                                  









                                                              
                                                      

           



                       





           

               
                                                                      

   
---
kind: pipeline
name: default

workspace:
  base: /drone/garage

volumes:
- name: nix_store
  host:
    path: /var/lib/drone/nix
- name: nix_config
  temp: {}

environment:
  HOME: /drone/garage

steps:
  - name: nix maintainance
    image: nixpkgs/nix:nixos-22.05
    volumes:
    - name: nix_store
      path: /mnt
    - name: nix_config
      path: /etc/nix
    commands:
    - "[ -d /mnt/store/3vpyn2qz5ay057nq9x68sh0r328d77ng-nix-2.8.1/ ] || (mkdir -p /mnt/store && cp -r /nix/store/* /mnt/store/)"
    - "[ -d /mnt/var/ ] || cp -r /nix/var /mnt/"
    - cp nix/nix.conf /etc/nix/nix.conf

  - name: warmup cache
    image: nixpkgs/nix:nixos-22.05
    volumes:
    - name: nix_store
      path: /nix
    - name: nix_config
      path: /etc/nix
    commands:
      - nix-build --no-build-output --no-out-link shell.nix -A rust.inputDerivation -A integration.inputDerivation

  - name: code quality
    image: nixpkgs/nix:nixos-22.05
    volumes:
    - name: nix_store
      path: /nix
    - name: nix_config
      path: /etc/nix
    commands:
      - nix-shell --attr rust --run "cargo fmt -- --check"
      - nix-shell --attr rust --run "cargo clippy -- --deny warnings"

  - name: build
    image: nixpkgs/nix:nixos-22.05
    volumes:
    - name: nix_store
      path: /nix
    - name: nix_config
      path: /etc/nix
    commands:
      - nix-build --no-build-output --attr pkgs.amd64.debug --argstr git_version $DRONE_COMMIT
      - nix-shell --attr rust --run "./script/not-dynamic.sh result/bin/garage"

  - name: unit + func tests
    image: nixpkgs/nix:nixos-22.05
    environment:
      GARAGE_TEST_INTEGRATION_EXE: result/bin/garage
    volumes:
    - name: nix_store
      path: /nix
    - name: nix_config
      path: /etc/nix
    commands:
      - nix-build --no-build-output --attr test.amd64
      - ./result/bin/garage_api-*
      - ./result/bin/garage_model-*
      - ./result/bin/garage_rpc-*
      - ./result/bin/garage_table-*
      - ./result/bin/garage_util-*
      - ./result/bin/garage_web-*
      - ./result/bin/garage-*
      - ./result/bin/integration-*

  - name: smoke-test
    image: nixpkgs/nix:nixos-22.05
    volumes:
    - name: nix_store
      path: /nix
    - name: nix_config
      path: /etc/nix
    commands:
      - nix-build --no-build-output --attr pkgs.amd64.debug --argstr git_version $DRONE_COMMIT
      - nix-shell --attr integration --run ./script/test-smoke.sh || (cat /tmp/garage.log; false)

trigger:
  event:
  - custom
  - push
  - pull_request
  - tag
  - cron

---
kind: pipeline
type: docker
name: release-linux-amd64

volumes:
- name: nix_store
  host:
    path: /var/lib/drone/nix
- name: nix_config
  temp: {}

steps:
  - name: nix maintainance
    image: nixpkgs/nix:nixos-22.05
    volumes:
    - name: nix_store
      path: /mnt
    - name: nix_config
      path: /etc/nix
    commands:
    - "[ -d /mnt/store/3vpyn2qz5ay057nq9x68sh0r328d77ng-nix-2.8.1/ ] || (mkdir -p /mnt/store && cp -r /nix/store/* /mnt/store/)"
    - "[ -d /mnt/var/ ] || cp -r /nix/var /mnt/"
    - cp nix/nix.conf /etc/nix/nix.conf

  - name: build
    image: nixpkgs/nix:nixos-22.05
    volumes:
    - name: nix_store
      path: /nix
    - name: nix_config
      path: /etc/nix
    commands:
      - nix-build --no-build-output --attr pkgs.amd64.release --argstr git_version $DRONE_COMMIT
      - nix-shell --attr rust --run "./script/not-dynamic.sh result/bin/garage"

  - name: integration
    image: nixpkgs/nix:nixos-22.05
    volumes:
    - name: nix_store
      path: /nix
    - name: nix_config
      path: /etc/nix
    commands:
      - nix-shell --attr integration --run ./script/test-smoke.sh || (cat /tmp/garage.log; false)

  - name: push static binary
    image: nixpkgs/nix:nixos-22.05
    volumes:
    - name: nix_store
      path: /nix
    - name: nix_config
      path: /etc/nix
    environment:
      AWS_ACCESS_KEY_ID:
        from_secret: garagehq_aws_access_key_id
      AWS_SECRET_ACCESS_KEY:
        from_secret: garagehq_aws_secret_access_key
    commands:
      - nix-shell --attr release --run "to_s3"

  - name: docker build and publish
    image: nixpkgs/nix:nixos-22.05
    volumes:
    - name: nix_store
      path: /nix
    - name: nix_config
      path: /etc/nix
    environment:
      DOCKER_AUTH:
        from_secret: docker_auth
      DOCKER_PLATFORM: "linux/amd64"
      CONTAINER_NAME: "dxflrs/amd64_garage"
      HOME: "/kaniko"
    commands:
      - mkdir -p /kaniko/.docker
      - echo $DOCKER_AUTH > /kaniko/.docker/config.json
      - export CONTAINER_TAG=${DRONE_TAG:-$DRONE_COMMIT}
      - nix-shell --attr release --run "to_docker"


trigger:
  event:
  - promote
  - cron

---
kind: pipeline
type: docker
name: release-linux-i386

volumes:
- name: nix_store
  host:
    path: /var/lib/drone/nix
- name: nix_config
  temp: {}

steps:
  - name: nix maintainance
    image: nixpkgs/nix:nixos-22.05
    volumes:
    - name: nix_store
      path: /mnt
    - name: nix_config
      path: /etc/nix
    commands:
    - "[ -d /mnt/store/3vpyn2qz5ay057nq9x68sh0r328d77ng-nix-2.8.1/ ] || (mkdir -p /mnt/store && cp -r /nix/store/* /mnt/store/)"
    - "[ -d /mnt/var/ ] || cp -r /nix/var /mnt/"
    - cp nix/nix.conf /etc/nix/nix.conf

  - name: build
    image: nixpkgs/nix:nixos-22.05
    volumes:
    - name: nix_store
      path: /nix
    - name: nix_config
      path: /etc/nix
    commands:
      - nix-build --no-build-output --attr pkgs.i386.release --argstr git_version $DRONE_COMMIT
      - nix-shell --attr rust --run "./script/not-dynamic.sh result/bin/garage"

  - name: integration
    image: nixpkgs/nix:nixos-22.05
    volumes:
    - name: nix_store
      path: /nix
    - name: nix_config
      path: /etc/nix
    commands:
      - nix-shell --attr integration --run ./script/test-smoke.sh || (cat /tmp/garage.log; false)

  - name: push static binary
    image: nixpkgs/nix:nixos-22.05
    volumes:
    - name: nix_store
      path: /nix
    - name: nix_config
      path: /etc/nix
    environment:
      AWS_ACCESS_KEY_ID:
        from_secret: garagehq_aws_access_key_id
      AWS_SECRET_ACCESS_KEY:
        from_secret: garagehq_aws_secret_access_key
    commands:
      - nix-shell --attr release --run "to_s3"

  - name: docker build and publish
    image: nixpkgs/nix:nixos-22.05
    volumes:
    - name: nix_store
      path: /nix
    - name: nix_config
      path: /etc/nix
    environment:
      DOCKER_AUTH:
        from_secret: docker_auth
      DOCKER_PLATFORM: "linux/386"
      CONTAINER_NAME: "dxflrs/386_garage"
      HOME: "/kaniko"
    commands:
      - mkdir -p /kaniko/.docker
      - echo $DOCKER_AUTH > /kaniko/.docker/config.json
      - export CONTAINER_TAG=${DRONE_TAG:-$DRONE_COMMIT}
      - nix-shell --attr release --run "to_docker"

trigger:
  event:
  - promote
  - cron

---
kind: pipeline
type: docker
name: release-linux-arm64

volumes:
- name: nix_store
  host:
    path: /var/lib/drone/nix
- name: nix_config
  temp: {}

steps:
  - name: nix maintainance
    image: nixpkgs/nix:nixos-22.05
    volumes:
    - name: nix_store
      path: /mnt
    - name: nix_config
      path: /etc/nix
    commands:
    - "[ -d /mnt/store/3vpyn2qz5ay057nq9x68sh0r328d77ng-nix-2.8.1/ ] || (mkdir -p /mnt/store && cp -r /nix/store/* /mnt/store/)"
    - "[ -d /mnt/var/ ] || cp -r /nix/var /mnt/"
    - cp nix/nix.conf /etc/nix/nix.conf

  - name: build
    image: nixpkgs/nix:nixos-22.05
    volumes:
    - name: nix_store
      path: /nix
    - name: nix_config
      path: /etc/nix
    commands:
      - nix-build --no-build-output --attr pkgs.arm64.release --argstr git_version $DRONE_COMMIT
      - nix-shell --attr rust --run "./script/not-dynamic.sh result/bin/garage"

  - name: push static binary
    image: nixpkgs/nix:nixos-22.05
    volumes:
    - name: nix_store
      path: /nix
    - name: nix_config
      path: /etc/nix
    environment:
      AWS_ACCESS_KEY_ID:
        from_secret: garagehq_aws_access_key_id
      AWS_SECRET_ACCESS_KEY:
        from_secret: garagehq_aws_secret_access_key
    commands:
      - nix-shell --attr release --run "to_s3"

  - name: docker build and publish
    image: nixpkgs/nix:nixos-22.05
    volumes:
    - name: nix_store
      path: /nix
    - name: nix_config
      path: /etc/nix
    environment:
      DOCKER_AUTH:
        from_secret: docker_auth
      DOCKER_PLATFORM: "linux/arm64"
      CONTAINER_NAME: "dxflrs/arm64_garage"
      HOME: "/kaniko"
    commands:
      - mkdir -p /kaniko/.docker
      - echo $DOCKER_AUTH > /kaniko/.docker/config.json
      - export CONTAINER_TAG=${DRONE_TAG:-$DRONE_COMMIT}
      - nix-shell --attr release --run "to_docker"

trigger:
  event:
  - promote
  - cron

---
kind: pipeline
type: docker
name: release-linux-arm

volumes:
- name: nix_store
  host:
    path: /var/lib/drone/nix
- name: nix_config
  temp: {}

steps:
  - name: nix maintainance
    image: nixpkgs/nix:nixos-22.05
    volumes:
    - name: nix_store
      path: /mnt
    - name: nix_config
      path: /etc/nix
    commands:
    - "[ -d /mnt/store/3vpyn2qz5ay057nq9x68sh0r328d77ng-nix-2.8.1/ ] || (mkdir -p /mnt/store && cp -r /nix/store/* /mnt/store/)"
    - "[ -d /mnt/var/ ] || cp -r /nix/var /mnt/"
    - cp nix/nix.conf /etc/nix/nix.conf

  - name: build
    image: nixpkgs/nix:nixos-22.05
    volumes:
    - name: nix_store
      path: /nix
    - name: nix_config
      path: /etc/nix
    commands:
      - nix-build --no-build-output --attr pkgs.arm.release --argstr git_version $DRONE_COMMIT
      - nix-shell --attr rust --run "./script/not-dynamic.sh result/bin/garage"

  - name: push static binary
    image: nixpkgs/nix:nixos-22.05
    volumes:
    - name: nix_store
      path: /nix
    - name: nix_config
      path: /etc/nix
    environment:
      AWS_ACCESS_KEY_ID:
        from_secret: garagehq_aws_access_key_id
      AWS_SECRET_ACCESS_KEY:
        from_secret: garagehq_aws_secret_access_key
    commands:
      - nix-shell --attr release --run "to_s3"

  - name: docker build and publish
    image: nixpkgs/nix:nixos-22.05
    volumes:
    - name: nix_store
      path: /nix
    - name: nix_config
      path: /etc/nix
    environment:
      DOCKER_AUTH:
        from_secret: docker_auth
      DOCKER_PLATFORM: "linux/arm"
      CONTAINER_NAME: "dxflrs/arm_garage"
      HOME: "/kaniko"
    commands:
      - mkdir -p /kaniko/.docker
      - echo $DOCKER_AUTH > /kaniko/.docker/config.json
      - export CONTAINER_TAG=${DRONE_TAG:-$DRONE_COMMIT}
      - nix-shell --attr release --run "to_docker"

trigger:
  event:
  - promote
  - cron

---
kind: pipeline
type: docker
name: refresh-release-page

volumes:
- name: nix_store
  host:
    path: /var/lib/drone/nix

steps:
  - name: refresh-index
    image: nixpkgs/nix:nixos-22.05
    volumes:
    - name: nix_store
      path: /nix
    environment:
      AWS_ACCESS_KEY_ID:
        from_secret: garagehq_aws_access_key_id
      AWS_SECRET_ACCESS_KEY:
        from_secret: garagehq_aws_secret_access_key
    commands:
      - mkdir -p /etc/nix && cp nix/nix.conf /etc/nix/nix.conf
      - nix-shell --attr release --run "refresh_index"

depends_on:
  - release-linux-amd64
  - release-linux-i386
  - release-linux-arm64
  - release-linux-arm

trigger:
  event:
  - promote
  - cron

---
kind: signature
hmac: 9789d5fd470fc4273adcfd05946833268d1e466462c5f36abeb8f607d62fdb4b

...