avmtrf1-tools 0.33.0 → 0.34.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (79) hide show
  1. checksums.yaml +4 -4
  2. data/lib/avmtrf1/active_directory/user.rb +3 -3
  3. data/lib/avmtrf1/core_ext.rb +4 -0
  4. data/lib/avmtrf1/default_jira.rb +3 -2
  5. data/lib/avmtrf1/docker/image.rb +12 -0
  6. data/lib/avmtrf1/docker/image_runner.rb +83 -0
  7. data/lib/avmtrf1/forponto/user/month.rb +0 -1
  8. data/lib/avmtrf1/git/cached_repository.rb +2 -2
  9. data/lib/avmtrf1/git/issue_on_repository.rb +2 -2
  10. data/lib/avmtrf1/git/push_large/lfs_commit/cache.rb +19 -0
  11. data/lib/avmtrf1/git/push_large/lfs_commit/checkout_previous_revision.rb +35 -0
  12. data/lib/avmtrf1/git/push_large/lfs_commit/commit_changes.rb +48 -0
  13. data/lib/avmtrf1/git/push_large/lfs_commit/helpers.rb +29 -0
  14. data/lib/avmtrf1/git/push_large/lfs_commit/pick_source_revision.rb +103 -0
  15. data/lib/avmtrf1/git/push_large/lfs_commit/push.rb +90 -0
  16. data/lib/avmtrf1/git/push_large/lfs_commit/track_large_files.rb +53 -0
  17. data/lib/avmtrf1/git/push_large/lfs_commit.rb +5 -10
  18. data/lib/avmtrf1/git/push_large/source_commit/push.rb +42 -0
  19. data/lib/avmtrf1/git/push_large/source_commit.rb +4 -7
  20. data/lib/avmtrf1/git/push_large.rb +6 -6
  21. data/lib/avmtrf1/inventario_sistemas/site_build/html_page_base.rb +1 -1
  22. data/lib/avmtrf1/node_js/docker_image.rb +10 -0
  23. data/lib/avmtrf1/node_js.rb +9 -0
  24. data/lib/avmtrf1/patches/avm/git/issue.rb +4 -0
  25. data/lib/avmtrf1/patches/avm/git.rb +4 -0
  26. data/lib/avmtrf1/patches/avm/launcher/git/base.rb +46 -0
  27. data/lib/avmtrf1/patches/avm/launcher/git.rb +4 -0
  28. data/lib/avmtrf1/patches/avm/launcher.rb +4 -0
  29. data/lib/avmtrf1/patches/avm.rb +4 -0
  30. data/lib/avmtrf1/patches.rb +3 -0
  31. data/lib/avmtrf1/php/docker_image.rb +2 -19
  32. data/lib/avmtrf1/red/helper.rb +2 -2
  33. data/lib/avmtrf1/template.rb +2 -2
  34. data/lib/avmtrf1/tools/runner/check_point/login.rb +6 -19
  35. data/lib/avmtrf1/tools/runner/check_point.rb +7 -13
  36. data/lib/avmtrf1/tools/runner/esosti/changed.rb +9 -22
  37. data/lib/avmtrf1/tools/runner/esosti/fetch.rb +9 -22
  38. data/lib/avmtrf1/tools/runner/esosti/request.rb +17 -29
  39. data/lib/avmtrf1/tools/runner/esosti.rb +8 -20
  40. data/lib/avmtrf1/tools/runner/forponto/espelho.rb +11 -21
  41. data/lib/avmtrf1/tools/runner/forponto/marcacoes.rb +7 -18
  42. data/lib/avmtrf1/tools/runner/forponto/resumos.rb +7 -19
  43. data/lib/avmtrf1/tools/runner/forponto/saldo.rb +10 -21
  44. data/lib/avmtrf1/tools/runner/forponto.rb +13 -23
  45. data/lib/avmtrf1/tools/runner/git/issues_check.rb +7 -18
  46. data/lib/avmtrf1/tools/runner/git/push_large.rb +27 -18
  47. data/lib/avmtrf1/tools/runner/git.rb +2 -4
  48. data/lib/avmtrf1/tools/runner/node_js/docker.rb +15 -0
  49. data/lib/avmtrf1/tools/runner/node_js.rb +18 -0
  50. data/lib/avmtrf1/tools/runner/oracle/query.rb +9 -13
  51. data/lib/avmtrf1/tools/runner/oracle/source_get.rb +17 -18
  52. data/lib/avmtrf1/tools/runner/oracle/user_clear.rb +7 -15
  53. data/lib/avmtrf1/tools/runner/oracle.rb +15 -22
  54. data/lib/avmtrf1/tools/runner/php/docker.rb +3 -60
  55. data/lib/avmtrf1/tools/runner/red.rb +21 -25
  56. data/lib/avmtrf1/tools/runner/trf1_dspace_base0/deploy.rb +1 -1
  57. data/lib/avmtrf1/tools/runner/trf1_dspace_base0.rb +9 -18
  58. data/lib/avmtrf1/tools/runner.rb +5 -2
  59. data/lib/avmtrf1/tools/version.rb +1 -1
  60. data/template/avmtrf1/node_js/docker_image/Dockerfile.template +11 -0
  61. data/template/avmtrf1/node_js/docker_image/auxiliary/config_banner.sh +15 -0
  62. data/template/avmtrf1/node_js/docker_image/auxiliary/init.sh +17 -0
  63. data/template/avmtrf1/node_js/docker_image/auxiliary/lib.sh +30 -0
  64. data/template/avmtrf1/node_js/docker_image/auxiliary/ng_serve.sh +16 -0
  65. data/template/avmtrf1/node_js/docker_image/auxiliary/npm_install.sh +21 -0
  66. data/template/avmtrf1/node_js/docker_image/auxiliary/start.sh +17 -0
  67. data/template/avmtrf1/php/docker_image/Dockerfile.template +1 -1
  68. metadata +36 -102
  69. data/lib/avmtrf1/configs.rb +0 -24
  70. data/lib/avmtrf1/fs_cache.rb +0 -11
  71. data/lib/avmtrf1/git/push_large/lfs_commit/_00_checkout_previous_revision.rb +0 -33
  72. data/lib/avmtrf1/git/push_large/lfs_commit/_01_cherry_pick_source_revision.rb +0 -89
  73. data/lib/avmtrf1/git/push_large/lfs_commit/_02_track_large_files.rb +0 -51
  74. data/lib/avmtrf1/git/push_large/lfs_commit/_03_commit_changes.rb +0 -46
  75. data/lib/avmtrf1/git/push_large/lfs_commit/_04_push.rb +0 -88
  76. data/lib/avmtrf1/git/push_large/lfs_commit/_cache.rb +0 -17
  77. data/lib/avmtrf1/git/push_large/lfs_commit/_helpers.rb +0 -27
  78. data/lib/avmtrf1/git/push_large/source_commit/_push.rb +0 -40
  79. data/lib/avmtrf1/patches/eac_launcher/git/base.rb +0 -43
@@ -1,89 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module Avmtrf1
4
- module Git
5
- class PushLarge
6
- class LfsCommit
7
- private
8
-
9
- def cherry_pick_source_revision_uncached
10
- checkout_base
11
- return unless previous_revision.present?
12
-
13
- infom message("Cherry pick #{source_commit.sha1}")
14
- result = git.execute('cherry-pick', '--allow-empty', '--allow-empty-message', '-Xtheirs',
15
- source_commit.sha1)
16
- check_cherry_pick_result(result)
17
- end
18
-
19
- def check_cherry_pick_result(result)
20
- return if result.fetch(:exit_code).zero?
21
-
22
- raise "Cherry pick failed: #{result}" unless cherry_pick_conflict?
23
-
24
- warn message('Cherry pick failed with conflict')
25
- resolve_cherry_pick_conflicts
26
-
27
- check_dirty_files
28
- check_cherry_continue
29
- end
30
-
31
- def cherry_pick_conflict?
32
- ::File.exist?(::File.join(git, '.git', 'CHERRY_PICK_HEAD'))
33
- end
34
-
35
- def resolve_cherry_pick_conflicts
36
- git.status_files.each do |scf|
37
- if scf.dirty == 'D'
38
- remove_file(scf.path)
39
- elsif scf.dirty.present?
40
- add_file(scf.path)
41
- end
42
- end
43
- end
44
-
45
- def remove_file(path)
46
- infov message('Removing file'), path
47
- git.execute!('rm', path)
48
- end
49
-
50
- def add_file(path)
51
- infov message('Adding file'), path
52
- git.execute!('add', path)
53
- end
54
-
55
- def check_dirty_files
56
- infom message('Checking dirty files...')
57
- df = dirty_files
58
- infov message('Dirty files?'), df.any?
59
- return unless df.any?
60
-
61
- df.each do |f|
62
- infov message(f.path, 1), "|#{f.stage}|#{f.dirty}|"
63
- end
64
- raise 'There are dirty files'
65
- end
66
-
67
- def dirty_files
68
- git.status_files.select { |scf| scf.dirty.present? }
69
- end
70
-
71
- def check_cherry_continue
72
- infom message('Continuing cherry pick')
73
- git.execute!('-c', "core.editor=#{bash_editor}", 'cherry-pick', '--continue')
74
- raise 'Still in cherry-pick conflict' if cherry_pick_conflict?
75
-
76
- infom message('Cherry pick continue successful')
77
- end
78
-
79
- def bash_editor
80
- if source_commit.subject.present?
81
- 'true'
82
- else
83
- 'bash -c "printf \\"Mensagem original em branco.\\n\\" > $1"'
84
- end
85
- end
86
- end
87
- end
88
- end
89
- end
@@ -1,51 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module Avmtrf1
4
- module Git
5
- class PushLarge
6
- class LfsCommit
7
- private
8
-
9
- EXTENSIONS_REQUIRED_TO_TRACK = %w[
10
- bak bkp bmp bpm cfm chm dat db doc fla flv gz jar log mp3 mp4 otf pdf ppt psd rar rtf swf
11
- ttf wav wmf wmv wmz woff woff2 xmind z zip
12
- ].freeze
13
-
14
- def track_large_files_uncached
15
- cherry_pick_source_revision
16
- if lfs_file_min_size.present?
17
-
18
- source_commit.files.each do |file|
19
- next unless track_file_with_lfs?(file)
20
-
21
- track_file(file)
22
- end
23
- raise 'None file was tracked' unless tracked_files.positive?
24
- end
25
- infov message('Tracked files'), @tracked_files
26
- end
27
-
28
- def track_file(file)
29
- infov message('Tracking with LFS'), file
30
- git.execute!('rm', '--cached', file.path)
31
- git.execute!('lfs', 'track', file.path) unless tracked_file?(file)
32
- @tracked_files += 1
33
- end
34
-
35
- def track_file_with_lfs?(file)
36
- return false unless file.dst_size.positive?
37
-
38
- required_extesion_to_track?(file) || (file.dst_size >= lfs_file_min_size)
39
- end
40
-
41
- def required_extesion_to_track?(file)
42
- EXTENSIONS_REQUIRED_TO_TRACK.include?(::File.extname(file.path).gsub(/\A\./, ''))
43
- end
44
-
45
- def tracked_file?(file)
46
- git.execute!('check-attr', '--all', '--', file.path).strip.present?
47
- end
48
- end
49
- end
50
- end
51
- end
@@ -1,46 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module Avmtrf1
4
- module Git
5
- class PushLarge
6
- class LfsCommit
7
- # @return [Avm::Git::Commit]
8
- def commit
9
- commit_changes
10
- @commit
11
- end
12
-
13
- private
14
-
15
- def commit_changes_uncached
16
- if sha1_cache.read.present?
17
- @commit = ::Avm::Git::Commit.new(git, sha1_cache.read)
18
- return
19
- end
20
- track_large_files
21
- add_files
22
- commit_amend
23
- store_commit
24
- end
25
-
26
- def add_files
27
- infom ' * Adding files'
28
- git.system!('add', '.')
29
- end
30
-
31
- def commit_amend
32
- infom message('Commiting')
33
- git.command('commit', '--amend', '--allow-empty', '--allow-empty-message')
34
- .envvar('GIT_EDITOR', true).execute!
35
- end
36
-
37
- def store_commit
38
- @commit = ::Avm::Git::Commit.new(git, git.rev_parse('HEAD'))
39
- infov message('Commited (SHA1)'), @commit.sha1
40
- sha1_cache.write(@commit.sha1)
41
- files_size_cache.write(@commit.files_size)
42
- end
43
- end
44
- end
45
- end
46
- end
@@ -1,88 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module Avmtrf1
4
- module Git
5
- class PushLarge
6
- class LfsCommit
7
- private
8
-
9
- PACK_ERROR_MESSAGE = 'pack exceeds maximum allowed size'
10
- PACK_ERROR_TRUE = 'true'
11
- PACK_ERROR_FALSE = 'false'
12
-
13
- def push_ok_uncached
14
- commit
15
- fresh_push if push_pack_error_cache.read.blank?
16
- after_push_banner
17
- push_pack_error_cache.read != PACK_ERROR_TRUE
18
- end
19
-
20
- def after_push_banner
21
- infov message('Commit SHA1'), commit.sha1
22
- raise 'Cache of files size not found' if files_size_cache.read.blank?
23
-
24
- infov message('Files size'), PushLarge.bytes_size(files_size_cache.read)
25
- end
26
-
27
- def fresh_push
28
- fresh_push_banner
29
- check_push_result(
30
- git.execute(
31
- 'push', push_large.remote_name, '--force',
32
- "#{commit.sha1}:#{push_reference}"
33
- )
34
- )
35
- end
36
-
37
- def fresh_push_banner
38
- infom message('Pushing...')
39
- fresh_push_commit_banner
40
- fresh_push_remote_banner
41
- end
42
-
43
- def fresh_push_commit_banner
44
- infov message('SHA1', 1), commit.sha1
45
- infov message('Files size', 1), PushLarge.bytes_size(commit.files_size)
46
- end
47
-
48
- def fresh_push_remote_banner
49
- infov message('Remote', 1), push_large.remote_name
50
- infov message('Reference', 1), push_reference
51
- end
52
-
53
- def push_reference
54
- "refs/heads/#{push_large.target_ref}"
55
- end
56
-
57
- def check_push_result(result)
58
- if result.fetch(:exit_code).zero?
59
- on_push_result_ok
60
- elsif result.fetch(:stderr).include?(PACK_ERROR_MESSAGE)
61
- on_push_result_pack_error
62
- else
63
- on_push_result_arbitrary_error(result)
64
- end
65
- end
66
-
67
- def on_push_result_ok
68
- push_pack_error_cache.write(PACK_ERROR_FALSE)
69
- success(push_message('successful'))
70
- end
71
-
72
- def on_push_result_pack_error
73
- push_pack_error_cache.write(PACK_ERROR_TRUE)
74
- warn(push_message("failed with message \"#{PACK_ERROR_MESSAGE}\""))
75
- end
76
-
77
- def on_push_result_arbitrary_error(result)
78
- raise result.pretty_inspect.to_s
79
- end
80
-
81
- def push_message(suffix)
82
- message("Push of #{commit.sha1} (Size: #{commit.files_size}, " \
83
- "Files: #{commit.files.count}): #{suffix}.")
84
- end
85
- end
86
- end
87
- end
88
- end
@@ -1,17 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module Avmtrf1
4
- module Git
5
- class PushLarge
6
- class LfsCommit
7
- def fs_cache_uncached
8
- source_commit.fs_cache.child(lfs_file_min_size.present? ? lfs_file_min_size : 'nil')
9
- end
10
-
11
- %w[sha1 files_size push_pack_error].each do |attr|
12
- define_method("#{attr}_cache_uncached") { fs_cache.child(attr) }
13
- end
14
- end
15
- end
16
- end
17
- end
@@ -1,27 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module Avmtrf1
4
- module Git
5
- class PushLarge
6
- class LfsCommit
7
- private
8
-
9
- def message(suffix, padding = 0)
10
- "#{(' ' * (padding + 2))}* #{suffix}"
11
- end
12
-
13
- def git
14
- source_commit.git
15
- end
16
-
17
- def push_large
18
- source_commit.push_large
19
- end
20
-
21
- def previous_revision
22
- push_large.last_pushed_revision
23
- end
24
- end
25
- end
26
- end
27
- end
@@ -1,40 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'filesize'
4
-
5
- module Avmtrf1
6
- module Git
7
- class PushLarge
8
- class SourceCommit
9
- private
10
-
11
- LFS_FILE_MIN_SIZES = [nil, 1_048_576, 524_288, 131_072].freeze
12
-
13
- def pushed_revision_uncached
14
- fs_cache.child('pushed_revision')
15
- end
16
-
17
- def run_pushs
18
- return if LFS_FILE_MIN_SIZES.any? do |lfs_file_min_size|
19
- lfs_commit = ::Avmtrf1::Git::PushLarge::LfsCommit.new(self, lfs_file_min_size)
20
- lfs_commit.start_banner
21
- push_with_lfs(lfs_commit)
22
- end
23
-
24
- raise 'Push de todos os commits falharam'
25
- end
26
-
27
- def push_with_lfs(lfs_commit)
28
- if lfs_commit.push_ok?
29
- pushed_revision.write(lfs_commit.commit.sha1)
30
- success " * Pushed: #{pushed_revision.read}"
31
- true
32
- else
33
- warn ' * Push failed'
34
- false
35
- end
36
- end
37
- end
38
- end
39
- end
40
- end
@@ -1,43 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'eac_launcher/git/base'
4
- require 'eac_ruby_utils/patch'
5
- require 'active_support/concern'
6
-
7
- module Avmtrf1
8
- module Patches
9
- module EacLauncher
10
- module Git
11
- module Base
12
- extend ActiveSupport::Concern
13
-
14
- included do
15
- include InstanceMethods
16
- end
17
-
18
- module InstanceMethods
19
- def status_files
20
- execute!('-c', 'core.quotepath=off', 'status', '--porcelain').each_line.map do |line|
21
- parse_status_file(line)
22
- end
23
- end
24
-
25
- private
26
-
27
- def parse_status_file(line)
28
- m = /\A(.)(.)\s*(\S.*)\z/.match(line.strip)
29
- return ::OpenStruct.new(stage: m[1], dirty: m[2], path: m[3]) if m
30
-
31
- raise "\"#{line.strip}\" did not match pattern"
32
- end
33
- end
34
- end
35
- end
36
- end
37
- end
38
- end
39
-
40
- ::EacRubyUtils.patch(
41
- ::EacLauncher::Git::Base,
42
- ::Avmtrf1::Patches::EacLauncher::Git::Base
43
- )