nixenvironment 0.0.58 → 0.0.59
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/README.md +1 -1
- data/bin/nixenvironment +122 -10
- data/lib/nixenvironment/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: a9611558922af8504fa54f21d3214412f56fe8cd
|
4
|
+
data.tar.gz: 554d9ea5f0bcf5a1716d47e5166fc9f8041dd1b2
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: f12c3c77d00c64c5738c15d6a232581e644596acefd4435c939aa6ed9c371e53f89da6bc075ba183e08b92a5f91ba21a1663a88d9a09ffadb5d1459d8a8fc0b5
|
7
|
+
data.tar.gz: 7c18f7ff7e3fc42d46fc86a362c037dd10139e3b30ad43cd09ea99a1c9127ead40be2b17d2dc9a36367862df1bf228e583476fa80bef4ab0e79c2da9b9d1e027
|
data/README.md
CHANGED
@@ -105,7 +105,7 @@ Nixenvironment installs, updates and manages inner NIX environment stuff to make
|
|
105
105
|
|
106
106
|
## TODO:
|
107
107
|
|
108
|
-
1.
|
108
|
+
1. Rewrite this README!
|
109
109
|
2. Rewrite README for ninbas!
|
110
110
|
|
111
111
|
## Automatic install and update on CI (Jenkins):
|
data/bin/nixenvironment
CHANGED
@@ -6,10 +6,11 @@ require 'commander/import'
|
|
6
6
|
require 'yaml'
|
7
7
|
require 'fileutils'
|
8
8
|
require 'shellwords'
|
9
|
+
require 'tmpdir'
|
10
|
+
require 'active_support/core_ext/object/blank'
|
9
11
|
|
10
12
|
include Nixenvironment
|
11
13
|
|
12
|
-
# :name is optional, otherwise uses the basename of this executable
|
13
14
|
program :name, 'nixenvironment'
|
14
15
|
program :version, VERSION
|
15
16
|
program :description, 'NIX projects build and deploy utility'
|
@@ -650,6 +651,60 @@ def build(config, ipa, ndsym, icon_tagger)
|
|
650
651
|
abort('Build error!')
|
651
652
|
end
|
652
653
|
|
654
|
+
if @config_settings['SDK'].include?('macos')
|
655
|
+
build_env_vars = load_build_env_vars
|
656
|
+
built_products_dir = build_env_vars['BUILT_PRODUCTS_DIR']
|
657
|
+
executable_name = build_env_vars['EXECUTABLE_NAME']
|
658
|
+
target_name = build_env_vars['TARGET_NAME']
|
659
|
+
configuration = build_env_vars['CONFIGURATION']
|
660
|
+
app_product = build_env_vars['APP_PRODUCT']
|
661
|
+
|
662
|
+
new_ipa_name = "#{executable_name}-#{target_name}-#{configuration}"
|
663
|
+
new_ipa_path = "#{built_products_dir}/#{new_ipa_name}.zip"
|
664
|
+
p("IPA_PRODUCT = #{new_ipa_path}")
|
665
|
+
|
666
|
+
root_working_dir = Dir.pwd
|
667
|
+
tmp_dir = Dir.mktmpdir
|
668
|
+
|
669
|
+
begin
|
670
|
+
dest_app_dir = File.join(tmp_dir, new_ipa_name)
|
671
|
+
dest_app_product = File.join(dest_app_dir, File.basename(app_product))
|
672
|
+
|
673
|
+
p("--> Create '#{dest_app_dir}' ...")
|
674
|
+
Dir.mkdir(dest_app_dir)
|
675
|
+
|
676
|
+
p("--> Copy '#{app_product}' into '#{dest_app_product}' ...")
|
677
|
+
FileUtils.cp_r(app_product, dest_app_product)
|
678
|
+
|
679
|
+
if Dir.exist?(new_ipa_path)
|
680
|
+
p("--> Remove old '#{new_ipa_path}' ...")
|
681
|
+
FileUtils.rm_rf(new_ipa_path)
|
682
|
+
end
|
683
|
+
|
684
|
+
p("--> Zip '#{tmp_dir}' into '#{new_ipa_path}' ...")
|
685
|
+
Dir.chdir(tmp_dir)
|
686
|
+
|
687
|
+
zip_success = system("/usr/bin/zip --symlinks --verbose --recurse-paths \"#{new_ipa_path}\" .")
|
688
|
+
raise unless zip_success
|
689
|
+
rescue
|
690
|
+
abort('Make zip failed!')
|
691
|
+
ensure
|
692
|
+
Dir.chdir(root_working_dir)
|
693
|
+
FileUtils.remove_entry(tmp_dir)
|
694
|
+
end
|
695
|
+
|
696
|
+
system("
|
697
|
+
IPA_BUNDLE_ID=\"`/usr/libexec/PlistBuddy -c 'Print CFBundleIdentifier' \"#{app_product}/Contents/Info.plist\"`\"
|
698
|
+
|
699
|
+
echo \"\n
|
700
|
+
IPA_PRODUCT=#{new_ipa_path.shellescape}
|
701
|
+
IPA_BUNDLE_ID=\"${IPA_BUNDLE_ID}\"
|
702
|
+
NAME_FOR_DEPLOYMENT=\"#{configuration}\"
|
703
|
+
\" >> _last_build_vars.sh")
|
704
|
+
|
705
|
+
return
|
706
|
+
end
|
707
|
+
|
653
708
|
if config == 'Release'
|
654
709
|
p('IconTagger: configuration is Release. Skipping ...')
|
655
710
|
else
|
@@ -770,6 +825,28 @@ def tag_icon(short_version)
|
|
770
825
|
--destinationIconsPath=#{app_product}")
|
771
826
|
end
|
772
827
|
|
828
|
+
def load_build_env_vars
|
829
|
+
load_build_env_vars = File.join(BUILD_SCRIPTS_PATH, 'LoadBuildEnvVars.sh')
|
830
|
+
cmd_output = %x[ source \"#{load_build_env_vars}\" ].strip!
|
831
|
+
build_env_vars = {}
|
832
|
+
|
833
|
+
vars_list = cmd_output.split(/\n/).reject(&:empty?)
|
834
|
+
if vars_list and vars_list.length > 0
|
835
|
+
vars_to_strip = Hash[vars_list.map { |it| it.split('=', 2) }]
|
836
|
+
vars_to_strip.each do |key, value|
|
837
|
+
if key and value
|
838
|
+
stripped_key = key.strip
|
839
|
+
stripped_value = value.strip
|
840
|
+
|
841
|
+
p("#{stripped_key} : #{stripped_value}")
|
842
|
+
build_env_vars[stripped_key] = stripped_value
|
843
|
+
end
|
844
|
+
end
|
845
|
+
end
|
846
|
+
|
847
|
+
build_env_vars
|
848
|
+
end
|
849
|
+
|
773
850
|
def backup_info_plist
|
774
851
|
p('Backuping Info.plist ...')
|
775
852
|
|
@@ -903,18 +980,53 @@ def restore_info_plist
|
|
903
980
|
end
|
904
981
|
|
905
982
|
def deploy(deliver_deploy)
|
906
|
-
|
907
|
-
|
908
|
-
|
909
|
-
|
910
|
-
deploy_username = @config_settings['DEPLOY_USERNAME'].nil? || @config_settings['DEPLOY_USERNAME'].empty? ? ENV['DEPLOY_USERNAME'] : @config_settings['DEPLOY_USERNAME']
|
911
|
-
deploy_password = @config_settings['DEPLOY_PASSWORD'].nil? || @config_settings['DEPLOY_PASSWORD'].empty? ? ENV['DEPLOY_PASSWORD'] : @config_settings['DEPLOY_PASSWORD']
|
912
|
-
deploy_itunesconnect_username = @config_settings['DEPLOY_ITUNESCONNECT_USERNAME'].nil? || @config_settings['DEPLOY_ITUNESCONNECT_USERNAME'].empty? ? ENV['DEPLOY_ITUNESCONNECT_USERNAME'] : @config_settings['DEPLOY_ITUNESCONNECT_USERNAME']
|
983
|
+
deploy_host = @config_settings['DEPLOY_HOST'].blank? ? ENV['DEPLOY_HOST'] : @config_settings['DEPLOY_HOST']
|
984
|
+
deploy_username = @config_settings['DEPLOY_USERNAME'].blank? ? ENV['DEPLOY_USERNAME'] : @config_settings['DEPLOY_USERNAME']
|
985
|
+
deploy_password = @config_settings['DEPLOY_PASSWORD'].blank? ? ENV['DEPLOY_PASSWORD'] : @config_settings['DEPLOY_PASSWORD']
|
986
|
+
deploy_itunesconnect_username = @config_settings['DEPLOY_ITUNESCONNECT_USERNAME'].blank? ? ENV['DEPLOY_ITUNESCONNECT_USERNAME'] : @config_settings['DEPLOY_ITUNESCONNECT_USERNAME']
|
913
987
|
|
914
988
|
deploy_itunesconnect_username ||= 'unknown'
|
915
989
|
deliver_deploy = deliver_deploy ? 1 : 0
|
916
990
|
|
917
|
-
deploy_success =
|
991
|
+
deploy_success = false
|
992
|
+
|
993
|
+
sdk_name = %x[ source _last_build_vars.sh && echo ${SDK_NAME} ].strip!
|
994
|
+
|
995
|
+
if sdk_name.include?('macos')
|
996
|
+
build_env_vars = load_build_env_vars
|
997
|
+
ipa_bundle_id = build_env_vars['IPA_BUNDLE_ID']
|
998
|
+
current_app_version = build_env_vars['CURRENT_APP_VERSION']
|
999
|
+
current_build_version = build_env_vars['CURRENT_BUILD_VERSION']
|
1000
|
+
name_for_deployment = build_env_vars['NAME_FOR_DEPLOYMENT']
|
1001
|
+
executable_name = build_env_vars['EXECUTABLE_NAME']
|
1002
|
+
ipa_product = build_env_vars['IPA_PRODUCT']
|
1003
|
+
app_dsym = build_env_vars['APP_DSYM']
|
1004
|
+
built_products_dir = build_env_vars['BUILT_PRODUCTS_DIR']
|
1005
|
+
|
1006
|
+
local_path_to_app = File.join(Dir.tmpdir, ipa_bundle_id)
|
1007
|
+
local_path_to_build = File.join(local_path_to_app, "v.#{current_app_version}_#{current_build_version}")
|
1008
|
+
FileUtils.rm_rf(local_path_to_build) # cleanup in case of previous releases
|
1009
|
+
FileUtils.mkdir_p(local_path_to_build)
|
1010
|
+
|
1011
|
+
configuration_full_path = File.join(local_path_to_build, name_for_deployment)
|
1012
|
+
FileUtils.mkdir(configuration_full_path)
|
1013
|
+
FileUtils.cp(ipa_product, File.join(configuration_full_path, "#{executable_name}.zip"))
|
1014
|
+
|
1015
|
+
if File.exist?(app_dsym)
|
1016
|
+
Dir.chdir(built_products_dir)
|
1017
|
+
destination = File.join(configuration_full_path, "#{executable_name}.app.dSYM.zip")
|
1018
|
+
system("zip -r \"#{destination}\" \"#{executable_name}.app.dSYM\"")
|
1019
|
+
end
|
1020
|
+
|
1021
|
+
deploy_path = @config_settings['DEPLOY_PATH'].blank? ? 'Projects/macOSProjects' : @config_settings['DEPLOY_PATH']
|
1022
|
+
deploy = File.join(BUILD_SCRIPTS_PATH, 'Deploy.sh')
|
1023
|
+
deploy_success = system("#{deploy} #{deploy_host} #{deploy_path} #{deploy_username} #{deploy_password} #{local_path_to_app}")
|
1024
|
+
else
|
1025
|
+
deploy_path = @config_settings['DEPLOY_PATH'].blank? ? ENV['DEPLOY_PATH'] : @config_settings['DEPLOY_PATH']
|
1026
|
+
deploy = File.join(BUILD_SCRIPTS_PATH, 'DeployIPA.sh')
|
1027
|
+
deploy_success = system("#{deploy} #{deploy_host} #{deploy_path} #{deploy_username} #{deploy_password} #{deploy_itunesconnect_username} #{deliver_deploy}")
|
1028
|
+
end
|
1029
|
+
|
918
1030
|
abort('Deploy error!') unless deploy_success
|
919
1031
|
end
|
920
1032
|
|
@@ -1011,4 +1123,4 @@ def clean_working_copy(all)
|
|
1011
1123
|
clean_working_copy = File.join(BUILD_SCRIPTS_PATH, 'CleanWorkingCopy.sh')
|
1012
1124
|
clean_success = system("#{clean_working_copy} #{clean_all}")
|
1013
1125
|
abort('Clean working copy error!') unless clean_success
|
1014
|
-
end
|
1126
|
+
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: nixenvironment
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.59
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Karen
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2015-08-
|
12
|
+
date: 2015-08-31 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: cocoapods
|