aboutsummaryrefslogblamecommitdiff
path: root/.drone.yml
blob: 903be5b0766e013f5de0d9c97f5e480e51b4ce3e (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: setup nix
    image: nixpkgs/nix:nixos-21.05
    volumes:
    - name: nix_store
      path: /nix
    - name: nix_config
      path: /etc/nix
    commands:
      - cp nix/nix.conf /etc/nix/nix.conf
      - nix-build --no-build-output --no-out-link shell.nix --arg release false  -A inputDerivation

  - name: code quality
    image: nixpkgs/nix:nixos-21.05
    volumes:
    - name: nix_store
      path: /nix
    - name: nix_config
      path: /etc/nix
    commands:
      - nix-shell --arg release false --run "cargo fmt -- --check"
      - nix-shell --arg release false --run "cargo clippy -- --deny warnings"

  - name: build
    image: nixpkgs/nix:nixos-21.05
    volumes:
    - name: nix_store
      path: /nix
    - name: nix_config
      path: /etc/nix
    commands:
      - nix-build --no-build-output --option log-lines 100 --argstr target x86_64-unknown-linux-musl --arg release false --argstr git_version $DRONE_COMMIT

  - name: unit + func tests
    image: nixpkgs/nix:nixos-21.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 \
          --option log-lines 100 \
          --argstr target x86_64-unknown-linux-musl \
          --argstr compileMode test
      - ./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-21.05
    volumes:
    - name: nix_store
      path: /nix
    - name: nix_config
      path: /etc/nix
    commands:
      - nix-build --no-build-output --argstr target x86_64-unknown-linux-musl --arg release false --argstr git_version $DRONE_COMMIT
      - nix-shell --arg release false --run ./script/test-smoke.sh || (cat /tmp/garage.log; false)

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

node:
  nix: 1

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

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

environment:
  TARGET: x86_64-unknown-linux-musl

steps:
  - name: setup nix
    image: nixpkgs/nix:nixos-21.05
    volumes:
    - name: nix_store
      path: /nix
    - name: nix_config
      path: /etc/nix
    commands:
      - cp nix/nix.conf /etc/nix/nix.conf
      - nix-build --no-build-output --no-out-link shell.nix -A inputDerivation

  - name: build
    image: nixpkgs/nix:nixos-21.05
    volumes:
    - name: nix_store
      path: /nix
    - name: nix_config
      path: /etc/nix
    commands:
      - nix-build --no-build-output --argstr target $TARGET --arg release true --argstr git_version $DRONE_COMMIT

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

  - name: push static binary
    image: nixpkgs/nix:nixos-21.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 --arg rust false --arg integration false --run "to_s3"

  - name: docker build and publish
    image: nixpkgs/nix:nixos-21.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 --arg rust false --arg integration false --run "to_docker"


trigger:
  event:
  - promote
  - cron

node:
  nix: 1

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

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

environment:
  TARGET: i686-unknown-linux-musl

steps:
  - name: setup nix
    image: nixpkgs/nix:nixos-21.05
    volumes:
    - name: nix_store
      path: /nix
    - name: nix_config
      path: /etc/nix
    commands:
      - cp nix/nix.conf /etc/nix/nix.conf
      - nix-build --no-build-output --no-out-link shell.nix -A inputDerivation

  - name: build
    image: nixpkgs/nix:nixos-21.05
    volumes:
    - name: nix_store
      path: /nix
    - name: nix_config
      path: /etc/nix
    commands:
      - nix-build --no-build-output --argstr target $TARGET --arg release true --argstr git_version $DRONE_COMMIT

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

  - name: push static binary
    image: nixpkgs/nix:nixos-21.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 --arg rust false --arg integration false --run "to_s3"

  - name: docker build and publish
    image: nixpkgs/nix:nixos-21.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 --arg rust false --arg integration false --run "to_docker"

trigger:
  event:
  - promote
  - cron

node:
  nix: 1

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

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

environment:
  TARGET: aarch64-unknown-linux-musl

steps:
  - name: setup nix
    image: nixpkgs/nix:nixos-21.05
    volumes:
    - name: nix_store
      path: /nix
    - name: nix_config
      path: /etc/nix
    commands:
      - cp nix/nix.conf /etc/nix/nix.conf
      - nix-build --no-build-output --no-out-link ./shell.nix --arg rust false --arg integration false -A inputDerivation

  - name: build
    image: nixpkgs/nix:nixos-21.05
    volumes:
    - name: nix_store
      path: /nix
    - name: nix_config
      path: /etc/nix
    commands:
      - nix-build --no-build-output --argstr target $TARGET --arg release true --argstr git_version $DRONE_COMMIT

  - name: push static binary
    image: nixpkgs/nix:nixos-21.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 --arg rust false --arg integration false --run "to_s3"

  - name: docker build and publish
    image: nixpkgs/nix:nixos-21.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 --arg rust false --arg integration false --run "to_docker"

trigger:
  event:
  - promote
  - cron

node:
  nix: 1

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

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

environment:
  TARGET: armv6l-unknown-linux-musleabihf

steps:
  - name: setup nix
    image: nixpkgs/nix:nixos-21.05
    volumes:
    - name: nix_store
      path: /nix
    - name: nix_config
      path: /etc/nix
    commands:
      - cp nix/nix.conf /etc/nix/nix.conf
      - nix-build --no-build-output --no-out-link --arg rust false --arg integration false -A inputDerivation

  - name: build
    image: nixpkgs/nix:nixos-21.05
    volumes:
    - name: nix_store
      path: /nix
    - name: nix_config
      path: /etc/nix
    commands:
      - nix-build --no-build-output --argstr target $TARGET --arg release true --argstr git_version $DRONE_COMMIT

  - name: push static binary
    image: nixpkgs/nix:nixos-21.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 --arg integration false --arg rust false --run "to_s3"

  - name: docker build and publish
    image: nixpkgs/nix:nixos-21.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 --arg rust false --arg integration false --run "to_docker"

trigger:
  event:
  - promote
  - cron

node:
  nix: 1

---
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-21.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 --arg integration false --arg rust false --run "refresh_index"

depends_on:
  - release-linux-x86_64
  - release-linux-i686
  - release-linux-aarch64
  - release-linux-armv6l

trigger:
  event:
  - promote
  - cron

node:
  nix: 1

---
kind: signature
hmac: 3fc19d6f9a3555519c8405e3281b2e74289bb802f644740d5481d53df3a01fa4

...