Some checks failed
		
		
	
	BlockStorage/repertory_osx/pipeline/head This commit looks good
				
			BlockStorage/repertory_windows/pipeline/head This commit looks good
				
			BlockStorage/repertory/pipeline/head There was a failure building this commit
				
			BlockStorage/repertory_linux_builds/pipeline/head This commit looks good
				
			BlockStorage/repertory_osx_builds/pipeline/head There was a failure building this commit
				
			### Issues
* \#1 \[bug\] Unable to mount S3 due to 'item_not_found' exception
* \#2 Require bucket name for S3 mounts
* \#3 \[bug\] File size is not being updated in S3 mount
* \#4 Upgrade to libfuse-3.x.x
* \#5 Switch to renterd for Sia support
* \#6 Switch to cpp-httplib to further reduce dependencies
* \#7 Remove global_data and calculate used disk space per provider
* \#8 Switch to libcurl for S3 mount support
### Changes from v1.x.x
* Added read-only encrypt provider
  * Pass-through mount point that transparently encrypts source data using `XChaCha20-Poly1305`
* Added S3 encryption support via `XChaCha20-Poly1305`
* Added replay protection to remote mounts
* Added support base64 writes in remote FUSE
* Created static linked Linux binaries for `amd64` and `aarch64` using `musl-libc`
* Removed legacy Sia renter support
* Removed Skynet support
* Fixed multiple remote mount WinFSP API issues on \*NIX servers
* Implemented chunked read and write
  * Writes for non-cached files are performed in chunks of 8Mib
* Removed `repertory-ui` support
* Removed `FreeBSD` support
* Switched to `libsodium` over `CryptoPP`
* Switched to `XChaCha20-Poly1305` for remote mounts
* Updated `GoogleTest` to v1.14.0
* Updated `JSON for Modern C++` to v3.11.2
* Updated `OpenSSL` to v1.1.1w
* Updated `RocksDB` to v8.5.3
* Updated `WinFSP` to 2023
* Updated `boost` to v1.78.0
* Updated `cURL` to v8.3.0
* Updated `zlib` to v1.3
* Use `upload_manager` for all providers
  * Adds a delay to uploads to prevent excessive API calls
  * Supports re-upload after mount restart for incomplete uploads
  * NOTE: Uploads for all providers are full file (no resume support)
    * Multipart upload support is planned for S3
Reviewed-on: #9
		
	
		
			
				
	
	
		
			96 lines
		
	
	
		
			2.5 KiB
		
	
	
	
		
			Groovy
		
	
	
	
	
	
			
		
		
	
	
			96 lines
		
	
	
		
			2.5 KiB
		
	
	
	
		
			Groovy
		
	
	
	
	
	
#!groovy
 | 
						|
 | 
						|
pipeline {
 | 
						|
  agent none
 | 
						|
 | 
						|
  environment {
 | 
						|
    BUILD_ARGS = '--build . -j 8'
 | 
						|
    CONFIGURE_ARGS = '../.. -DCMAKE_BUILD_TYPE=Release -DREPERTORY_ENABLE_S3=ON' 
 | 
						|
    CONFIGURE_MINGW64_ARGS = '../.. -DCMAKE_BUILD_TYPE=Release -DREPERTORY_ENABLE_S3=ON -DCMAKE_TOOLCHAIN_FILE=../../cmake/mingw-w64-x86_64.cmake' 
 | 
						|
    REPERTORY_TEST_DIR = "${HOME}/.ci/cfg"
 | 
						|
  }
 | 
						|
 | 
						|
  options {
 | 
						|
    disableConcurrentBuilds()
 | 
						|
    retry(2)
 | 
						|
  }
 | 
						|
 | 
						|
  stages {
 | 
						|
    stage('clean') {
 | 
						|
      agent any
 | 
						|
 | 
						|
      steps {
 | 
						|
        sh 'mkdir -p build/'
 | 
						|
        sh 'rm -f build/*/librepertory.a'
 | 
						|
        sh 'rm -f build/*/repertory'
 | 
						|
        sh 'rm -f build/*/unittests'
 | 
						|
      }
 | 
						|
    }
 | 
						|
 | 
						|
    stage('alpine') {
 | 
						|
      agent {
 | 
						|
        dockerfile {
 | 
						|
          filename 'alpine'
 | 
						|
          dir 'docker/64_bit'
 | 
						|
        }
 | 
						|
      }
 | 
						|
 | 
						|
      steps {
 | 
						|
        retry(2) {
 | 
						|
          sleep time: 5, unit: 'SECONDS'
 | 
						|
          cmake arguments: "${env.CONFIGURE_ARGS}", installation: 'InSearchPath', workingDir: 'build/alpine'
 | 
						|
          cmake arguments: "${env.BUILD_ARGS}", installation: 'InSearchPath', workingDir: 'build/alpine'
 | 
						|
          sh 'strip build/alpine/repertory'
 | 
						|
        }
 | 
						|
      }
 | 
						|
    }
 | 
						|
 | 
						|
    stage('alpine_arm64') {
 | 
						|
      agent {
 | 
						|
        dockerfile {
 | 
						|
          filename 'alpine'
 | 
						|
          dir 'docker/aarch64'
 | 
						|
          args '-v /usr/bin/qemu-aarch64-static:/usr/bin/qemu-aarch64-static'
 | 
						|
        }
 | 
						|
      }
 | 
						|
 | 
						|
      steps {
 | 
						|
        retry(2) {
 | 
						|
          sleep time: 5, unit: 'SECONDS'
 | 
						|
          cmake arguments: "${env.CONFIGURE_ARGS}", installation: 'InSearchPath', workingDir: 'build/alpine_arm64'
 | 
						|
          cmake arguments: "${env.BUILD_ARGS}", installation: 'InSearchPath', workingDir: 'build/alpine_arm64'
 | 
						|
          sh 'strip build/alpine_arm64/repertory'
 | 
						|
        }
 | 
						|
      }
 | 
						|
    }
 | 
						|
 | 
						|
    stage('mingw64') {
 | 
						|
      agent {
 | 
						|
        dockerfile {
 | 
						|
          filename 'mingw64'
 | 
						|
          dir 'docker/64_bit'
 | 
						|
        }
 | 
						|
      }
 | 
						|
 | 
						|
      steps {
 | 
						|
        retry(2) {
 | 
						|
          sleep time: 5, unit: 'SECONDS'
 | 
						|
          cmake arguments: "${env.CONFIGURE_MINGW64_ARGS}", installation: 'InSearchPath', workingDir: 'build/mingw64'
 | 
						|
          cmake arguments: "${env.BUILD_ARGS}", installation: 'InSearchPath', workingDir: 'build/mingw64'
 | 
						|
          sh 'strip build/mingw64/repertory.exe'
 | 
						|
        }
 | 
						|
      }
 | 
						|
    }
 | 
						|
 | 
						|
    stage('deliver') {
 | 
						|
      agent any
 | 
						|
 | 
						|
      steps {
 | 
						|
        sh 'scripts/make_package.sh alpine /home/sgraves/cert build/alpine_arm64 . /mnt/filebase 1'
 | 
						|
        sh 'scripts/make_package.sh alpine /home/sgraves/cert build/alpine . /mnt/filebase'
 | 
						|
        sh 'scripts/make_package.sh mingw64 /home/sgraves/cert build/mingw64 . /mnt/filebase'
 | 
						|
      }
 | 
						|
    }
 | 
						|
  }
 | 
						|
}
 |