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


              

               
 
      
                          
                                  
             
                                                          
 
               
                                  
             
                                                                                                        
 
                           
                                  
                
                                                        
             
                                                                                                        
                                                     
                                







                                   
                 
 
                           
                                  
             
                                                                                                        
                                                                                                 
 







                

              
            
                         
 

               
 
      
               
                                  
             
                                                                                                              
                                                                                   

                     
                                  
             
                                                                                                 
 
                            
                                  

                        
                                               
                            
                                                   
                                         
             
                                              

                                  
                                  





                                           
             


                                                        
                                                  






           


              
                        
 

               
 
      
               
                                  
             
                                                                                                             
                                                                                   

                     
                                  
             
                                                                                                 

                            
                                  




                                                   
                                       
             
                                              

                                  
                                  


                                

                                         




                                                        
                                                  
 




           


              
                         
 

               
 
      
               
                                  
             
                                                                                                              
                                                                                   
 
                            
                                  

                        
                                               
                            
                                                   
                                          
             
                                              

                                  
                                  





                                           
             


                                                        
                                                  





           


              
                       
 

               
 
      
               
                                  
             
                                                                                                            
                                                                                   

                            
                                  




                                                   
                                               
             
                                              

                                  
                                  


                                

                                         




                                                        
                                                  





           




                          

               

      










                                                         
                       
                                  






                                                              
                                                      

           



                       





           

               
                                                                      

   
---
kind: pipeline
name: default

node:
  nix-daemon: 1

steps:
  - name: check formatting
    image: nixpkgs/nix:nixos-22.05
    commands:
      - nix-shell --attr rust --run "cargo fmt -- --check"

  - name: build
    image: nixpkgs/nix:nixos-22.05
    commands:
      - nix-build --no-build-output --attr clippy.amd64 --argstr git_version ${DRONE_TAG:-$DRONE_COMMIT}

  - name: unit + func tests
    image: nixpkgs/nix:nixos-22.05
    environment:
      GARAGE_TEST_INTEGRATION_EXE: result-bin/bin/garage
    commands:
      - nix-build --no-build-output --attr clippy.amd64 --argstr git_version ${DRONE_TAG:-$DRONE_COMMIT}
      - nix-build --no-build-output --attr test.amd64
      - ./result/bin/garage_db-*
      - ./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-*
      - rm result

  - name: integration tests
    image: nixpkgs/nix:nixos-22.05
    commands:
      - nix-build --no-build-output --attr clippy.amd64 --argstr git_version ${DRONE_TAG:-$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

node:
  nix-daemon: 1

steps:
  - name: build
    image: nixpkgs/nix:nixos-22.05
    commands:
      - nix-build --no-build-output --attr pkgs.amd64.release --argstr git_version ${DRONE_TAG:-$DRONE_COMMIT}
      - nix-shell --attr rust --run "./script/not-dynamic.sh result-bin/bin/garage"

  - name: integration
    image: nixpkgs/nix:nixos-22.05
    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
    environment:
      AWS_ACCESS_KEY_ID:
        from_secret: garagehq_aws_access_key_id
      AWS_SECRET_ACCESS_KEY:
        from_secret: garagehq_aws_secret_access_key
      TARGET: "x86_64-unknown-linux-musl"
    commands:
      - nix-shell --attr release --run "to_s3"

  - name: docker build and publish
    image: nixpkgs/nix:nixos-22.05
    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

node:
  nix-daemon: 1

steps:
  - name: build
    image: nixpkgs/nix:nixos-22.05
    commands:
      - nix-build --no-build-output --attr pkgs.i386.release --argstr git_version ${DRONE_TAG:-$DRONE_COMMIT}
      - nix-shell --attr rust --run "./script/not-dynamic.sh result-bin/bin/garage"

  - name: integration
    image: nixpkgs/nix:nixos-22.05
    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
    environment:
      AWS_ACCESS_KEY_ID:
        from_secret: garagehq_aws_access_key_id
      AWS_SECRET_ACCESS_KEY:
        from_secret: garagehq_aws_secret_access_key
      TARGET: "i686-unknown-linux-musl"
    commands:
      - nix-shell --attr release --run "to_s3"

  - name: docker build and publish
    image: nixpkgs/nix:nixos-22.05
    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

node:
  nix-daemon: 1

steps:
  - name: build
    image: nixpkgs/nix:nixos-22.05
    commands:
      - nix-build --no-build-output --attr pkgs.arm64.release --argstr git_version ${DRONE_TAG:-$DRONE_COMMIT}
      - nix-shell --attr rust --run "./script/not-dynamic.sh result-bin/bin/garage"

  - name: push static binary
    image: nixpkgs/nix:nixos-22.05
    environment:
      AWS_ACCESS_KEY_ID:
        from_secret: garagehq_aws_access_key_id
      AWS_SECRET_ACCESS_KEY:
        from_secret: garagehq_aws_secret_access_key
      TARGET: "aarch64-unknown-linux-musl"
    commands:
      - nix-shell --attr release --run "to_s3"

  - name: docker build and publish
    image: nixpkgs/nix:nixos-22.05
    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

node:
  nix-daemon: 1

steps:
  - name: build
    image: nixpkgs/nix:nixos-22.05
    commands:
      - nix-build --no-build-output --attr pkgs.arm.release --argstr git_version ${DRONE_TAG:-$DRONE_COMMIT}
      - nix-shell --attr rust --run "./script/not-dynamic.sh result-bin/bin/garage"

  - name: push static binary
    image: nixpkgs/nix:nixos-22.05
    environment:
      AWS_ACCESS_KEY_ID:
        from_secret: garagehq_aws_access_key_id
      AWS_SECRET_ACCESS_KEY:
        from_secret: garagehq_aws_secret_access_key
      TARGET: "armv6l-unknown-linux-musleabihf"
    commands:
      - nix-shell --attr release --run "to_s3"

  - name: docker build and publish
    image: nixpkgs/nix:nixos-22.05
    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

node:
  nix-daemon: 1

steps:
  - name: multiarch-docker
    image: nixpkgs/nix:nixos-22.05
    environment:
      DOCKER_AUTH:
        from_secret: docker_auth
      HOME: "/root"
    commands:
      - mkdir -p /root/.docker
      - echo $DOCKER_AUTH > /root/.docker/config.json
      - export CONTAINER_TAG=${DRONE_TAG:-$DRONE_COMMIT}
      - nix-shell --attr release --run "multiarch_docker"
  - name: refresh-index
    image: nixpkgs/nix:nixos-22.05
    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: ac09a5a8c82502f67271f93afa1e1e21ce66383b8e24a6deb26b285cc1c378ba

...