project_name := Map derived_data_path := ~/Library/Developer/Xcode/DerivedData sparkle_path := $(shell find $(derived_data_path) -type d -path '*artifacts/sparkle/Sparkle' -print -quit) download_url := https://build.r.bdr.sh/map/ build_directory := builds sparkle_account := tranquil.systems deploy_host := deploy@conchos.bdr.sh deploy_path := /srv/http/build.r.bdr.sh/map distribute: archive package notarize repackage generate_appcast sign_distributable upload sign_distributable: @scripts/sign.sh "$(project_name)" "$(build_directory)" upload: @scripts/upload.sh "$(project_name)" "$(build_directory)" "$(deploy_host):$(deploy_path)" notarize: @scripts/notarize.sh "$(project_name)" "$(build_directory)" repackage: @scripts/package.sh "$(project_name)" "$(build_directory)" build: @xcodebuild build -scheme Map test: @xcodebuild test -scheme Map package: @scripts/package.sh "$(project_name)" "$(build_directory)" generate_appcast: @$(sparkle_path)/bin/generate_appcast --download-url-prefix $(download_url) --account $(sparkle_account) $(build_directory) archive: prepare @xcodebuild -project $(project_name).xcodeproj -scheme $(project_name) -configuration Release -archivePath $(build_directory)/$(project_name).xcarchive archive && xcodebuild -exportArchive -archivePath $(build_directory)/$(project_name).xcarchive -exportPath $(build_directory) -exportOptionsPlist export_options.plist -allowProvisioningUpdates prepare: @mkdir -p $(build_directory) format: @swift format -i -r . lint: @swift format lint -r . .PHONY: package prepare archive generate_appcast package distribute format lint build test notarize sign_distributable upload repackage