mirror of https://github.com/oxen-io/session-ios
				
				
				
			
			You cannot select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
	
	
		
			143 lines
		
	
	
		
			4.6 KiB
		
	
	
	
		
			Plaintext
		
	
			
		
		
	
	
			143 lines
		
	
	
		
			4.6 KiB
		
	
	
	
		
			Plaintext
		
	
// Intentionally doing a depth of 2 as libSession-util has it's own submodules (and libLokinet likely will as well)
 | 
						|
local clone_submodules = {
 | 
						|
  name: 'Clone Submodules',
 | 
						|
  commands: ['git fetch --tags', 'git submodule update --init --recursive --depth=2']
 | 
						|
};
 | 
						|
 | 
						|
// cmake options for static deps mirror
 | 
						|
local ci_dep_mirror(want_mirror) = (if want_mirror then ' -DLOCAL_MIRROR=https://oxen.rocks/deps ' else '');
 | 
						|
 | 
						|
// Cocoapods
 | 
						|
// 
 | 
						|
// Unfortunately Cocoapods has a dumb restriction which requires you to use UTF-8 for the
 | 
						|
// 'LANG' env var so we need to work around the with https://github.com/CocoaPods/CocoaPods/issues/6333
 | 
						|
local install_cocoapods = {
 | 
						|
  name: 'Install CocoaPods',
 | 
						|
  commands: ['LANG=en_US.UTF-8 pod install']
 | 
						|
};
 | 
						|
 | 
						|
// Load from the cached CocoaPods directory (to speed up the build)
 | 
						|
local load_cocoapods_cache = {
 | 
						|
  name: 'Load CocoaPods Cache',
 | 
						|
  commands: [
 | 
						|
    |||
 | 
						|
      if [[ ! -f /Users/drone/.cocoapods_cache.valid ]]; then
 | 
						|
        rm /Users/drone/.cocoapods_cache.lock
 | 
						|
      fi
 | 
						|
    |||,
 | 
						|
    |||
 | 
						|
      while test -e /Users/drone/.cocoapods_cache.lock; do
 | 
						|
          sleep 1
 | 
						|
      done
 | 
						|
    |||,
 | 
						|
    'touch /Users/drone/.cocoapods_cache.lock',
 | 
						|
    'rm /Users/drone/.cocoapods_cache.valid',
 | 
						|
    |||
 | 
						|
      if [[ -d /Users/drone/.cocoapods_cache ]]; then
 | 
						|
        cp -r /Users/drone/.cocoapods_cache ./Pods
 | 
						|
      fi
 | 
						|
    |||,
 | 
						|
    'touch /Users/drone/.cocoapods_cache.valid',
 | 
						|
    'rm /Users/drone/.cocoapods_cache.lock'
 | 
						|
  ]
 | 
						|
};
 | 
						|
 | 
						|
// Override the cached CocoaPods directory (to speed up the next build)
 | 
						|
local update_cocoapods_cache = {
 | 
						|
  name: 'Update CocoaPods Cache',
 | 
						|
  commands: [
 | 
						|
    |||
 | 
						|
      while test -e /Users/drone/.cocoapods_cache.lock; do
 | 
						|
          sleep 1
 | 
						|
      done
 | 
						|
    |||,
 | 
						|
    'touch /Users/drone/.cocoapods_cache.lock',
 | 
						|
    'rm /Users/drone/.cocoapods_cache.valid',
 | 
						|
    |||
 | 
						|
      if [[ -d ./Pods ]]; then
 | 
						|
        rm -rf /Users/drone/.cocoapods_cache
 | 
						|
        cp -r ./Pods /Users/drone/.cocoapods_cache
 | 
						|
      fi
 | 
						|
    |||,
 | 
						|
    'touch /Users/drone/.cocoapods_cache.valid',
 | 
						|
    'rm /Users/drone/.cocoapods_cache.lock'
 | 
						|
  ]
 | 
						|
};
 | 
						|
 | 
						|
 | 
						|
[
 | 
						|
  // Unit tests
 | 
						|
  {
 | 
						|
    kind: 'pipeline',
 | 
						|
    type: 'exec',
 | 
						|
    name: 'Unit Tests',
 | 
						|
    platform: { os: 'darwin', arch: 'amd64' },
 | 
						|
    steps: [
 | 
						|
      clone_submodules,
 | 
						|
      load_cocoapods_cache,
 | 
						|
      install_cocoapods,
 | 
						|
      {
 | 
						|
        name: 'Run Unit Tests',
 | 
						|
        commands: [
 | 
						|
          'mkdir build',
 | 
						|
          'NSUnbufferedIO=YES set -o pipefail && xcodebuild test -workspace Session.xcworkspace -scheme Session -derivedDataPath ./build/derivedData -destination "platform=iOS Simulator,name=iPhone 14" -destination "platform=iOS Simulator,name=iPhone 14 Pro Max" -parallel-testing-enabled YES -test-timeouts-enabled YES -maximum-test-execution-time-allowance 2 -collect-test-diagnostics never 2>&1 | ./Pods/xcbeautify/xcbeautify --is-ci --report junit --report-path ./build/reports --junit-report-filename junit2.xml'
 | 
						|
        ],
 | 
						|
      },
 | 
						|
      update_cocoapods_cache
 | 
						|
    ],
 | 
						|
  },
 | 
						|
  // Simulator build
 | 
						|
  {
 | 
						|
    kind: 'pipeline',
 | 
						|
    type: 'exec',
 | 
						|
    name: 'Simulator Build',
 | 
						|
    platform: { os: 'darwin', arch: 'amd64' },
 | 
						|
    steps: [
 | 
						|
      clone_submodules,
 | 
						|
      load_cocoapods_cache,
 | 
						|
      install_cocoapods,
 | 
						|
      {
 | 
						|
        name: 'Build',
 | 
						|
        commands: [
 | 
						|
          'mkdir build',
 | 
						|
          'xcodebuild archive -workspace Session.xcworkspace -scheme Session -derivedDataPath ./build/derivedData -configuration "App Store Release" -sdk iphonesimulator -archivePath ./build/Session_sim.xcarchive -destination "generic/platform=iOS Simulator" | ./Pods/xcbeautify/xcbeautify --is-ci'
 | 
						|
        ],
 | 
						|
      },
 | 
						|
      update_cocoapods_cache,
 | 
						|
      {
 | 
						|
        name: 'Upload artifacts',
 | 
						|
        environment: { SSH_KEY: { from_secret: 'SSH_KEY' } },
 | 
						|
        commands: [
 | 
						|
          './Scripts/drone-static-upload.sh'
 | 
						|
        ]
 | 
						|
      },
 | 
						|
    ],
 | 
						|
  },
 | 
						|
  // AppStore build (generate an archive to be signed later)
 | 
						|
  {
 | 
						|
    kind: 'pipeline',
 | 
						|
    type: 'exec',
 | 
						|
    name: 'AppStore Build',
 | 
						|
    platform: { os: 'darwin', arch: 'amd64' },
 | 
						|
    steps: [
 | 
						|
      clone_submodules,
 | 
						|
      load_cocoapods_cache,
 | 
						|
      install_cocoapods,
 | 
						|
      {
 | 
						|
        name: 'Build',
 | 
						|
        commands: [
 | 
						|
          'mkdir build',
 | 
						|
          'xcodebuild archive -workspace Session.xcworkspace -scheme Session -derivedDataPath ./build/derivedData -configuration "App Store Release" -sdk iphoneos -archivePath ./build/Session.xcarchive -destination "generic/platform=iOS" -allowProvisioningUpdates CODE_SIGNING_ALLOWED=NO'
 | 
						|
        ],
 | 
						|
      },
 | 
						|
      update_cocoapods_cache,
 | 
						|
      {
 | 
						|
        name: 'Upload artifacts',
 | 
						|
        environment: { SSH_KEY: { from_secret: 'SSH_KEY' } },
 | 
						|
        commands: [
 | 
						|
          './Scripts/drone-static-upload.sh'
 | 
						|
        ]
 | 
						|
      },
 | 
						|
    ],
 | 
						|
  },
 | 
						|
] |