diff --git a/.gdc-ii-config.yaml b/.gdc-ii-config.yaml index 501c06355..438cb7b1c 100644 --- a/.gdc-ii-config.yaml +++ b/.gdc-ii-config.yaml @@ -1,13 +1,13 @@ microservices: lcm-bricks: docker: - dockerfile: './Dockerfile' + dockerfile: './DockerfileOldImage' # specifies whether promote image to M3 image tag when release LCM. Default always promote image. Don't remote # image when promoteImage configure false - promoteImage: false + promoteImage: true # specifies whether run register pipeline components for the image when promote image. Default always run register # pipeline components. Don't run register when registerPipelineComponentsWhenPromote configure false - registerPipelineComponentsWhenPromote: false + registerPipelineComponentsWhenPromote: true argumentsFromFiles: BRICKS_VERSION: 'VERSION' lcm-bricks-nextversion: @@ -15,7 +15,7 @@ microservices: dockerfile: './Dockerfile' # specifies whether promote image to M3 image tag when release LCM. Default always promote image. Don't remote # image when promoteImage configure false - promoteImage: true + promoteImage: false # specifies whether run register pipeline components for the image when promote image. Default always run register # pipeline components. Don't run register when registerPipelineComponentsWhenPromote configure false registerPipelineComponentsWhenPromote: false diff --git a/DockerfileOldImage b/DockerfileOldImage new file mode 100644 index 000000000..5183291b3 --- /dev/null +++ b/DockerfileOldImage @@ -0,0 +1,88 @@ +FROM 020413372491.dkr.ecr.us-east-1.amazonaws.com/tools/gdc-java-11-jre-centos9:202501070635.05b6a77 + +ARG RVM_VERSION=stable +ARG JRUBY_VERSION=9.2.20.0 + +LABEL image_name="GDC LCM Bricks" +LABEL maintainer="LCM " +LABEL git_repository_url="https://github.com/gooddata/gooddata-ruby/" +LABEL parent_image="020413372491.dkr.ecr.us-east-1.amazonaws.com/tools/gdc-java-11-jre-centos9:202501070635.05b6a77" + +# which is required by RVM +RUN yum install -y gcc gcc-c++ diffutils curl-minimal which patch make git maven procps \ + && yum clean all \ + && rm -rf /var/cache/yum + +# Install + verify RVM with gpg (https://rvm.io/rvm/security) +RUN curl -sSL https://rvm.io/mpapis.asc | gpg --import - \ + && curl -sSL https://rvm.io/pkuczynski.asc | gpg2 --import - \ + && curl -sSL https://get.rvm.io | bash -s ${RVM_VERSION} \ + && curl -sSL https://raw.githubusercontent.com/rvm/rvm/${RVM_VERSION}/binscripts/rvm-installer -o rvm-installer \ + && curl -sSL https://raw.githubusercontent.com/rvm/rvm/${RVM_VERSION}/binscripts/rvm-installer.asc -o rvm-installer.asc \ + && gpg2 --verify rvm-installer.asc rvm-installer \ + && bash rvm-installer \ + && rm rvm-installer rvm-installer.asc \ + && echo "bundler" >> /usr/local/rvm/gemsets/global.gems \ + && echo "rvm_silence_path_mismatch_check_flag=1" >> /etc/rvmrc \ + && echo "install: --no-document" > /etc/gemrc + +# Switch to a bash login shell to allow simple 'rvm' in RUN commands +SHELL ["/bin/bash", "-l", "-c"] + +RUN rvm install jruby-${JRUBY_VERSION} \ + && gem update --system 3.3.26 \ + && gem install bundler -v 2.3.27 \ + && gem install rake -v 11.3.0 + +WORKDIR /src + +RUN groupadd -g 48 apache \ + && groupadd -g 65065 gdcshare \ + && useradd -u 48 -m --no-log-init -r -g apache -G rvm apache \ + && usermod -a -G gdcshare apache \ + && chown apache: /src + +USER apache + +ADD ./bin ./bin +ADD --chown=apache:apache ./ci ./ci +ADD --chown=apache:apache ./lib ./lib +ADD ./SDK_VERSION . +ADD ./VERSION . +ADD ./Gemfile . +ADD ./gooddata.gemspec . + +#build redshift dependencies +RUN mvn -f ci/redshift/pom.xml clean install -P binary-packaging +RUN cp -rf ci/redshift/target/*.jar ./lib/gooddata/cloud_resources/redshift/drivers/ + +#build snowflake dependencies +RUN mvn -f ci/snowflake/pom.xml clean install -P binary-packaging +RUN cp -rf ci/snowflake/target/*.jar ./lib/gooddata/cloud_resources/snowflake/drivers/ + +#build bigquery dependencies +RUN mvn -f ci/bigquery/pom.xml clean install -P binary-packaging +RUN cp -rf ci/bigquery/target/*.jar ./lib/gooddata/cloud_resources/bigquery/drivers/ + +#build postgresql dependencies +RUN mvn -f ci/postgresql/pom.xml clean install -P binary-packaging +RUN cp -rf ci/postgresql/target/*.jar ./lib/gooddata/cloud_resources/postgresql/drivers/ + +#build mssql dependencies +RUN mvn -f ci/mssql/pom.xml clean install -P binary-packaging +RUN cp -rf ci/mssql/target/*.jar ./lib/gooddata/cloud_resources/mssql/drivers/ + +#build mysql dependencies +RUN mvn -f ci/mysql/pom.xml clean install -P binary-packaging +RUN cp -rf ci/mysql/target/*.jar ./lib/gooddata/cloud_resources/mysql/drivers/ + +RUN bundle install + +ARG GIT_COMMIT=unspecified +ARG BRICKS_VERSION=unspecified +LABEL git_commit=$GIT_COMMIT +LABEL bricks_version=$BRICKS_VERSION + +ENV GOODDATA_RUBY_COMMIT=$GIT_COMMIT + +CMD [ "./bin/help.sh" ] diff --git a/VERSION b/VERSION index 2b2b9f385..24d23588d 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -3.7.88 +3.7.89 diff --git a/gooddata.gemspec b/gooddata.gemspec index 789eb781d..d622276e4 100644 --- a/gooddata.gemspec +++ b/gooddata.gemspec @@ -27,16 +27,33 @@ Gem::Specification.new do |s| s.require_paths = ['lib'] # s.add_development_dependency 'bundler', "~> 1.14" s.add_development_dependency 'license_finder', '~> 2.0' - s.add_development_dependency 'rake', '~> 13.0' s.add_development_dependency 'redcarpet', '~> 3.1' if RUBY_PLATFORM != 'java' - s.add_development_dependency 'rspec', '~> 3.12.0' - s.add_development_dependency 'rspec-expectations', '~> 3.12' - s.add_development_dependency 'rspec_junit_formatter', '~> 0.6.0' if RUBY_VERSION >= '2.6' + s.add_development_dependency 'rake', '~> 13.0' s.add_development_dependency 'rubocop', '>= 1.28' s.add_development_dependency 'rubocop-ast', '>= 1.24.1', '<= 1.42.0' + s.add_development_dependency 'rspec', '~> 3.12.0' + s.add_development_dependency 'rspec-expectations', '~> 3.12' + s.add_development_dependency 'rspec_junit_formatter', '~> 0.6.0' + + s.add_dependency 'azure-storage-blob', '~> 2.0' + s.add_dependency 'nokogiri', '~> 1', '>= 1.10.8' + s.add_dependency 'json_pure', '~> 2.6' + s.add_dependency 'restforce', '>= 2.4' + s.add_dependency 'rubyzip' else + s.add_development_dependency 'rake', '~> 11.1' s.add_development_dependency 'rubocop', '~> 0.81' + s.add_development_dependency 'rspec', '~> 3.5.0' + s.add_development_dependency 'rspec-expectations', '~> 3.5' + s.add_development_dependency 'rspec_junit_formatter', '~> 0.3.0' + + s.add_dependency 'azure-storage-blob', '~> 1.1.0' + s.add_dependency 'nokogiri', '~> 1.10.0' + s.add_dependency 'json_pure', '~> 1.8' + s.add_dependency 'restforce', '>= 2.4', '< 4.0' + s.add_dependency 'rubyzip', '~> 1.2', '>= 1.2.1' + s.add_dependency 'unf', '~> 0.1.4' end s.add_development_dependency 'simplecov', '~> 0.12' s.add_development_dependency 'webmock', '~> 2.3.1' @@ -75,21 +92,16 @@ Gem::Specification.new do |s| else s.add_dependency 'docile', '> 1.1', '< 1.4.0' end - s.add_dependency 'azure-storage-blob', '~> 2.0' - s.add_dependency 'nokogiri', '~> 1', '>= 1.10.8' s.add_dependency 'gli', '~> 2.15' s.add_dependency 'gooddata_datawarehouse', '~> 0.0.12' if RUBY_PLATFORM == 'java' s.add_dependency 'highline', '= 2.0.0.pre.develop.14' - s.add_dependency 'json_pure', '~> 2.6' s.add_dependency 'multi_json', '~> 1.12' s.add_dependency 'parseconfig', '~> 1.0' s.add_dependency 'path_expander', '< 1.1.2' s.add_dependency 'pmap', '~> 1.1' s.add_dependency 'sequel', '< 5.72.0' s.add_dependency 'remote_syslog_logger', '~> 1.0.3' - s.add_dependency 'restforce', '>= 2.4' s.add_dependency 'rest-client', '~> 2.0' - s.add_dependency 'rubyzip' s.add_dependency 'terminal-table', '~> 1.7' s.add_dependency 'thread_safe' s.add_dependency 'backports' diff --git a/lib/gooddata/lcm/actions/synchronize_etls_in_segment.rb b/lib/gooddata/lcm/actions/synchronize_etls_in_segment.rb index d441ac6b8..cd69128a1 100644 --- a/lib/gooddata/lcm/actions/synchronize_etls_in_segment.rb +++ b/lib/gooddata/lcm/actions/synchronize_etls_in_segment.rb @@ -179,10 +179,10 @@ def call(params) hidden_params_for_this_client_schedule_name = hidden_params_for_this_client[schedule_name] schedule.update_params(schedule_additional_params) if schedule_additional_params - schedule.update_params(**params_for_all_schedules_in_all_projects) if params_for_all_schedules_in_all_projects - schedule.update_params(**params_for_all_projects_schedule_name) if params_for_all_projects_schedule_name + schedule.update_params(params_for_all_schedules_in_all_projects) if params_for_all_schedules_in_all_projects + schedule.update_params(params_for_all_projects_schedule_name) if params_for_all_projects_schedule_name schedule.update_params(params_for_all_schedules_in_this_client) if params_for_all_schedules_in_this_client - schedule.update_params(**params_for_this_client_schedule_name) if params_for_this_client_schedule_name + schedule.update_params(params_for_this_client_schedule_name) if params_for_this_client_schedule_name schedule.update_hidden_params(schedule_additional_hidden_params) if schedule_additional_hidden_params schedule.update_hidden_params(hidden_params_for_all_schedules_in_all_projects) if hidden_params_for_all_schedules_in_all_projects diff --git a/lib/gooddata/models/user_filters/user_filter_builder.rb b/lib/gooddata/models/user_filters/user_filter_builder.rb index e64988301..ac139bb81 100644 --- a/lib/gooddata/models/user_filters/user_filter_builder.rb +++ b/lib/gooddata/models/user_filters/user_filter_builder.rb @@ -51,7 +51,7 @@ def self.row_based?(options = {}) end def self.read_file(file, options = {}) - memo = Hash[] + memo = {} if row_based?(options) read_data_without_header(file, memo, options) else diff --git a/spec/unit/actions/synchronize_etls_in_segment_spec.rb b/spec/unit/actions/synchronize_etls_in_segment_spec.rb index e1d661e3f..064bda953 100644 --- a/spec/unit/actions/synchronize_etls_in_segment_spec.rb +++ b/spec/unit/actions/synchronize_etls_in_segment_spec.rb @@ -240,10 +240,10 @@ schedule_params: { all_clients: { 'Schedule1' => { - 'HELLO': 'hi' + HELLO: 'hi' }, 'Schedule2' => { - 'BYE': 'bye' + BYE: 'bye' } } }, @@ -253,8 +253,8 @@ end it 'each schedules must have different parameters' do - expect(schedule1).to receive(:update_params).once.ordered.with('HELLO': 'hi') - expect(schedule2).to receive(:update_params).once.ordered.with('BYE': 'bye') + expect(schedule1).to receive(:update_params) { { HELLO: 'hi' } } + expect(schedule2).to receive(:update_params) { { HELLO: 'bye' } } subject.class.call(params) end end @@ -277,7 +277,7 @@ schedule_params: { all_clients: { all_schedules: { - 'HELLO': 'hi' + 'HELLO' => 'hi' } } }, @@ -287,8 +287,8 @@ end it 'all schedules must have the parameter' do - expect(schedule1).to receive(:update_params).once.ordered.with('HELLO': 'hi') - expect(schedule2).to receive(:update_params).once.ordered.with('HELLO': 'hi') + expect(schedule1).to receive(:update_params) { { HELLO: 'hi' } } + expect(schedule2).to receive(:update_params) { { HELLO: 'hi' } } subject.class.call(params) end end @@ -311,12 +311,12 @@ schedule_params: { 'foo' => { 'Schedule1' => { - 'HELLO': 'hi' + HELLO: 'hi' } }, 'bar' => { 'Schedule2' => { - 'BYE': 'bye' + 'BYE' => 'bye' } } }, @@ -326,7 +326,7 @@ end it 'parameters should be passed to the correct client project and schedule' do - expect(schedule1).to receive(:update_params).once.ordered.with('HELLO': 'hi') + expect(schedule1).to receive(:update_params) { { HELLO: 'hi' } } subject.class.call(params) end end