Skip to content

Commit 78f019b

Browse files
authored
Merge pull request #2063 from gooddata/gsan-grif-524_2
GRIF-667: Implementation of github actions for lcm-integration-e2e
2 parents 2605faf + d9eea6a commit 78f019b

6 files changed

Lines changed: 105 additions & 4 deletions

File tree

.github/workflows/check.yaml

Lines changed: 17 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,9 +23,25 @@ jobs:
2323
id: changed-files
2424
uses: tj-actions/changed-files@v45
2525

26-
gooddata-ruby-lcm-build-pipeline:
26+
gooddata-ruby-lcm-integration-e2e:
2727
needs:
2828
- prepare-env
29+
uses: ./.github/workflows/lcm-integration-e2e.yaml
30+
secrets: inherit
31+
permissions:
32+
id-token: write
33+
contents: read
34+
if: ${{ needs.prepare-env.outputs.branch == 'master' }}
35+
with:
36+
AUTO_MERGE: false
37+
base_branch: ${{ needs.prepare-env.outputs.branch }}
38+
pr_number: ${{ needs.prepare-env.outputs.pr_number }}
39+
java_version: '11'
40+
ruby_version: 'jruby-9.4.12.1'
41+
42+
gooddata-ruby-lcm-build-pipeline:
43+
needs:
44+
- gooddata-ruby-lcm-integration-e2e
2945
permissions:
3046
contents: read
3147
id-token: write
Lines changed: 81 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,81 @@
1+
name: LCM Integration E2E Pipeline
2+
3+
on:
4+
workflow_call:
5+
inputs:
6+
AUTO_MERGE:
7+
default: true
8+
required: false
9+
type: boolean
10+
description: Must be set here in order to use in if condition at job level.
11+
base_branch:
12+
required: true
13+
type: string
14+
description: The base branch to compare against for detecting changes.
15+
pr_number:
16+
required: true
17+
type: string
18+
java_version:
19+
required: true
20+
type: string
21+
ruby_version:
22+
required: true
23+
type: string
24+
25+
env:
26+
RT_S3_BUCKET_NAME: "gdc-dev-eu-integration-tests"
27+
JAVA_HOME: /usr/lib/jvm/java-${{ inputs.java_version }}-openjdk-amd64
28+
PATH: /usr/lib/jvm/java-${{ inputs.java_version }}-openjdk-amd64/bin:/usr/local/bin:/usr/bin:/bin
29+
30+
jobs:
31+
LCM-integration-e2e-tests:
32+
runs-on:
33+
group: infra1-runners-arc
34+
labels: runners-rxa-xlarge
35+
permissions:
36+
id-token: write
37+
contents: read
38+
steps:
39+
- name: Checkout repository
40+
uses: actions/checkout@v4
41+
with:
42+
submodules: 'true'
43+
token: ${{ secrets.TOKEN_GITHUB_YENKINS }}
44+
- name: Set up JRuby + Bundler
45+
uses: ruby/setup-ruby@v1
46+
with:
47+
ruby-version: ${{ inputs.ruby_version }}
48+
bundler-cache: true
49+
- name: Build image
50+
run: |
51+
bundle exec rake -f lcm.rake docker:build
52+
- name: Build gems
53+
run: |
54+
bundle exec rake -f lcm.rake docker:bundle
55+
- name: Run integrated tests
56+
run: |
57+
bundle exec rake -f lcm.rake test:docker:integration-e2e
58+
env:
59+
GD_SPEC_PASSWORD: ${{ secrets.RUBY_TEST_PASSWORD }}
60+
RT_S3_BUCKET_NAME: ${{ env.RT_S3_BUCKET_NAME }}
61+
RT_S3_ACCESS_KEY: ${{ secrets.RUBY_TEST_S3_ACCESS_KEY }}
62+
RT_S3_SECRET_KEY: ${{ secrets.RUBY_TEST_S3_SECRET_KEY }}
63+
GD_DEV_DEV_TOKEN: ${{ secrets.RUBY_TEST_DEV_TOKEN }}
64+
GD_DEV_PROD_TOKEN: ${{ secrets.RUBY_TEST_PROD_TOKEN }}
65+
GD_DEV_VERTICA_DEV_TOKEN: ${{ secrets.RUBY_TEST_DEV_TOKEN_VERTICA }}
66+
GD_DEV_VERTICA_PROD_TOKEN: ${{ secrets.RUBY_TEST_PROD_TOKEN_VERTICA }}
67+
GD_DEV_PASSWORD: ${{ secrets.RUBY_TEST_PASSWORD }}
68+
GD_DEV_DEFAULT_PASSWORD: ${{ secrets.RUBY_TEST_PASSWORD }}
69+
GD_TEST_DEV_TOKEN: ${{ secrets.RUBY_TEST_DEV_TOKEN }}
70+
GD_TEST_PROD_TOKEN: ${{ secrets.RUBY_TEST_PROD_TOKEN }}
71+
GD_TEST_VERTICA_DEV_TOKEN: ${{ secrets.RUBY_TEST_DEV_TOKEN_VERTICA }}
72+
GD_TEST_VERTICA_PROD_TOKEN: ${{ secrets.RUBY_TEST_PROD_TOKEN_VERTICA }}
73+
GD_TEST_PASSWORD: ${{ secrets.RUBY_TEST_PASSWORD }}
74+
GD_TEST_DEFAULT_PASSWORD: ${{ secrets.RUBY_TEST_PASSWORD }}
75+
GD_STG_DEV_TOKEN: ${{ secrets.RUBY_TEST_DEV_TOKEN }}
76+
GD_STG_PROD_TOKEN: ${{ secrets.RUBY_TEST_PROD_TOKEN }}
77+
GD_STG_VERTICA_DEV_TOKEN: ${{ secrets.RUBY_TEST_DEV_TOKEN_VERTICA }}
78+
GD_STG_VERTICA_PROD_TOKEN: ${{ secrets.RUBY_TEST_PROD_TOKEN_VERTICA }}
79+
GD_STG_PASSWORD: ${{ secrets.RUBY_TEST_PASSWORD }}
80+
GD_STG_DEFAULT_PASSWORD: ${{ secrets.RUBY_TEST_PASSWORD }}
81+

lib/gooddata/rest/connection.rb

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,8 @@ class Connection
3333
TOKEN_PATH = '/gdc/account/token'
3434
KEYS_TO_SCRUB = [:password, :verifyPassword, :authorizationToken]
3535
API_LEVEL = 2
36+
KB = 1024
37+
MB = 1024 * KB
3638

3739
ID_LENGTH = 16
3840

@@ -177,8 +179,8 @@ def initialize(opts)
177179

178180
# Connect using username and password
179181
def connect(username, password, options = {})
180-
if RUBY_VERSION >= '3.3'
181-
Psych::Parser.code_point_limit = 100_000_000
182+
if RUBY_ENGINE == "jruby" && RUBY_ENGINE_VERSION >= '9.4.12.0'
183+
Psych::Parser.code_point_limit = 100 * MB
182184
end
183185
server = options[:server] || Helpers::AuthHelper.read_server
184186
options = DEFAULT_LOGIN_PAYLOAD.merge(options)

spec/helpers/constants.rb

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ module Helpers
2121
CUSTOM_CLIENT_ID_COLUMN = 'custom_client_id_column'
2222
COMPUTED_ATTRIBUTE_ID = 'attr.comp.my_computed_attr'
2323
USER_GROUP_NAME = 'My Test Group'
24+
ADD_COMPONENT_NAME = 'Automated Data Distribution'
2425
ADD_V2_COMPONENT_NAME = 'lcm-end-to-end-add-component'
2526
ADD_COMPONENT_SCHEDULE_NAME = 'add-component-schedule'
2627
end

spec/lcm/integration/spec/shared_contexts_for_lcm.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -253,7 +253,7 @@ def create_workspace_csv(workspaces, client_id_column)
253253

254254
begin
255255
GoodData.logger.info("Deleting segments")
256-
domain = @rest_client.domain(@config[:prod_organization])
256+
domain = @prod_rest_client.domain(@config[:prod_organization])
257257
data_product = domain.data_products(@test_context[:data_product])
258258
data_product.delete(force: true)
259259
rescue StandardError => e

spec/lcm/integration/spec/shared_examples_for_synchronization_bricks.rb

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@
1919
original_processes.reject! { |p| p.name == ADD_V2_COMPONENT_NAME }
2020
projects.each do |target_project|
2121
target_processes = target_project.processes.to_a
22+
target_processes.reject! { |p| p.name == ADD_COMPONENT_NAME }
2223
expect(target_processes.length).to be original_processes.length
2324
original_processes.each do |expected|
2425
actual = target_processes.find { |p| p.name == expected.name }

0 commit comments

Comments
 (0)