aboutsummaryrefslogblamecommitdiff
path: root/.drone.yml
blob: 277bfbc27d151a656c0e72f4e32cbfc2fbbae68f (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/garage
    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: 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/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/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/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/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: 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: 362639b4c9541ad9bd06ff7f72b5235b2b0216bcb16eececd25285b6fe94ba6f

...