activerecord-spanner-adapter 0.3.0 → 1.0.0
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 +5 -5
- data/.github/CODEOWNERS +7 -0
- data/.github/sync-repo-settings.yaml +16 -0
- data/.github/workflows/acceptance-tests-on-emulator.yaml +45 -0
- data/.github/workflows/acceptance-tests-on-production.yaml +49 -0
- data/.github/workflows/ci.yaml +33 -0
- data/.github/workflows/nightly-acceptance-tests-on-emulator.yaml +52 -0
- data/.github/workflows/nightly-acceptance-tests-on-production.yaml +35 -0
- data/.github/workflows/nightly-unit-tests.yaml +40 -0
- data/.github/workflows/release-please-label.yml +25 -0
- data/.github/workflows/release-please.yml +39 -0
- data/.github/workflows/rubocop.yaml +31 -0
- data/.gitignore +67 -5
- data/.kokoro/populate-secrets.sh +77 -0
- data/.kokoro/release.cfg +33 -0
- data/.kokoro/release.sh +15 -0
- data/.kokoro/trampoline_v2.sh +489 -0
- data/.rubocop.yml +46 -0
- data/.toys/release.rb +18 -0
- data/.trampolinerc +48 -0
- data/.yardopts +11 -0
- data/CHANGELOG.md +55 -0
- data/CODE_OF_CONDUCT.md +40 -0
- data/CONTRIBUTING.md +79 -0
- data/Gemfile +9 -4
- data/LICENSE +6 -6
- data/README.md +66 -30
- data/Rakefile +79 -3
- data/SECURITY.md +7 -0
- data/acceptance/cases/associations/has_many_associations_test.rb +119 -0
- data/acceptance/cases/associations/has_many_through_associations_test.rb +63 -0
- data/acceptance/cases/associations/has_one_associations_test.rb +79 -0
- data/acceptance/cases/associations/has_one_through_associations_test.rb +98 -0
- data/acceptance/cases/interleaved_associations/has_many_associations_using_interleaved_test.rb +211 -0
- data/acceptance/cases/migration/change_schema_test.rb +433 -0
- data/acceptance/cases/migration/change_table_test.rb +115 -0
- data/acceptance/cases/migration/column_attributes_test.rb +122 -0
- data/acceptance/cases/migration/column_positioning_test.rb +48 -0
- data/acceptance/cases/migration/columns_test.rb +201 -0
- data/acceptance/cases/migration/command_recorder_test.rb +406 -0
- data/acceptance/cases/migration/create_join_table_test.rb +216 -0
- data/acceptance/cases/migration/ddl_batching_test.rb +80 -0
- data/acceptance/cases/migration/foreign_key_test.rb +297 -0
- data/acceptance/cases/migration/index_test.rb +211 -0
- data/acceptance/cases/migration/references_foreign_key_test.rb +259 -0
- data/acceptance/cases/migration/references_index_test.rb +135 -0
- data/acceptance/cases/migration/references_statements_test.rb +166 -0
- data/acceptance/cases/migration/rename_column_test.rb +96 -0
- data/acceptance/cases/models/calculation_query_test.rb +128 -0
- data/acceptance/cases/models/generated_column_test.rb +126 -0
- data/acceptance/cases/models/mutation_test.rb +122 -0
- data/acceptance/cases/models/query_test.rb +171 -0
- data/acceptance/cases/sessions/session_not_found_test.rb +121 -0
- data/acceptance/cases/transactions/optimistic_locking_test.rb +141 -0
- data/acceptance/cases/transactions/read_only_transactions_test.rb +130 -0
- data/acceptance/cases/transactions/read_write_transactions_test.rb +248 -0
- data/acceptance/cases/type/all_types_test.rb +172 -0
- data/acceptance/cases/type/binary_test.rb +59 -0
- data/acceptance/cases/type/boolean_test.rb +31 -0
- data/acceptance/cases/type/date_test.rb +32 -0
- data/acceptance/cases/type/date_time_test.rb +30 -0
- data/acceptance/cases/type/float_test.rb +27 -0
- data/acceptance/cases/type/integer_test.rb +44 -0
- data/acceptance/cases/type/json_test.rb +34 -0
- data/acceptance/cases/type/numeric_test.rb +27 -0
- data/acceptance/cases/type/string_test.rb +79 -0
- data/acceptance/cases/type/text_test.rb +30 -0
- data/acceptance/cases/type/time_test.rb +87 -0
- data/acceptance/models/account.rb +13 -0
- data/acceptance/models/address.rb +9 -0
- data/acceptance/models/album.rb +12 -0
- data/acceptance/models/all_types.rb +8 -0
- data/acceptance/models/author.rb +11 -0
- data/acceptance/models/club.rb +12 -0
- data/acceptance/models/comment.rb +9 -0
- data/acceptance/models/customer.rb +9 -0
- data/acceptance/models/department.rb +9 -0
- data/acceptance/models/firm.rb +10 -0
- data/acceptance/models/member.rb +13 -0
- data/acceptance/models/member_type.rb +9 -0
- data/acceptance/models/membership.rb +10 -0
- data/acceptance/models/organization.rb +9 -0
- data/acceptance/models/post.rb +10 -0
- data/acceptance/models/singer.rb +10 -0
- data/acceptance/models/track.rb +20 -0
- data/acceptance/models/transaction.rb +9 -0
- data/acceptance/schema/schema.rb +147 -0
- data/acceptance/test_helper.rb +261 -0
- data/activerecord-spanner-adapter.gemspec +32 -17
- data/assets/solidus-db.png +0 -0
- data/benchmarks/README.md +17 -0
- data/benchmarks/Rakefile +14 -0
- data/benchmarks/application.rb +308 -0
- data/benchmarks/config/database.yml +8 -0
- data/benchmarks/config/environment.rb +12 -0
- data/benchmarks/db/migrate/01_create_tables.rb +25 -0
- data/benchmarks/db/schema.rb +29 -0
- data/benchmarks/models/album.rb +9 -0
- data/benchmarks/models/singer.rb +9 -0
- data/bin/console +6 -7
- data/examples/rails/README.md +262 -0
- data/examples/snippets/README.md +29 -0
- data/examples/snippets/Rakefile +57 -0
- data/examples/snippets/array-data-type/README.md +45 -0
- data/examples/snippets/array-data-type/Rakefile +13 -0
- data/examples/snippets/array-data-type/application.rb +45 -0
- data/examples/snippets/array-data-type/config/database.yml +8 -0
- data/examples/snippets/array-data-type/db/migrate/01_create_tables.rb +24 -0
- data/examples/snippets/array-data-type/db/schema.rb +26 -0
- data/examples/snippets/array-data-type/db/seeds.rb +5 -0
- data/examples/snippets/array-data-type/models/entity_with_array_types.rb +18 -0
- data/examples/snippets/bin/create_emulator_instance.rb +18 -0
- data/examples/snippets/bulk-insert/README.md +21 -0
- data/examples/snippets/bulk-insert/Rakefile +13 -0
- data/examples/snippets/bulk-insert/application.rb +64 -0
- data/examples/snippets/bulk-insert/config/database.yml +8 -0
- data/examples/snippets/bulk-insert/db/migrate/01_create_tables.rb +21 -0
- data/examples/snippets/bulk-insert/db/schema.rb +26 -0
- data/examples/snippets/bulk-insert/db/seeds.rb +5 -0
- data/examples/snippets/bulk-insert/models/album.rb +9 -0
- data/examples/snippets/bulk-insert/models/singer.rb +9 -0
- data/examples/snippets/commit-timestamp/README.md +18 -0
- data/examples/snippets/commit-timestamp/Rakefile +13 -0
- data/examples/snippets/commit-timestamp/application.rb +53 -0
- data/examples/snippets/commit-timestamp/config/database.yml +8 -0
- data/examples/snippets/commit-timestamp/db/migrate/01_create_tables.rb +26 -0
- data/examples/snippets/commit-timestamp/db/schema.rb +29 -0
- data/examples/snippets/commit-timestamp/db/seeds.rb +5 -0
- data/examples/snippets/commit-timestamp/models/album.rb +9 -0
- data/examples/snippets/commit-timestamp/models/singer.rb +9 -0
- data/examples/snippets/config/environment.rb +21 -0
- data/examples/snippets/create-records/README.md +12 -0
- data/examples/snippets/create-records/Rakefile +13 -0
- data/examples/snippets/create-records/application.rb +42 -0
- data/examples/snippets/create-records/config/database.yml +8 -0
- data/examples/snippets/create-records/db/migrate/01_create_tables.rb +21 -0
- data/examples/snippets/create-records/db/schema.rb +26 -0
- data/examples/snippets/create-records/db/seeds.rb +5 -0
- data/examples/snippets/create-records/models/album.rb +9 -0
- data/examples/snippets/create-records/models/singer.rb +9 -0
- data/examples/snippets/date-data-type/README.md +19 -0
- data/examples/snippets/date-data-type/Rakefile +13 -0
- data/examples/snippets/date-data-type/application.rb +35 -0
- data/examples/snippets/date-data-type/config/database.yml +8 -0
- data/examples/snippets/date-data-type/db/migrate/01_create_tables.rb +20 -0
- data/examples/snippets/date-data-type/db/schema.rb +21 -0
- data/examples/snippets/date-data-type/db/seeds.rb +16 -0
- data/examples/snippets/date-data-type/models/singer.rb +8 -0
- data/examples/snippets/generated-column/README.md +41 -0
- data/examples/snippets/generated-column/Rakefile +13 -0
- data/examples/snippets/generated-column/application.rb +37 -0
- data/examples/snippets/generated-column/config/database.yml +8 -0
- data/examples/snippets/generated-column/db/migrate/01_create_tables.rb +23 -0
- data/examples/snippets/generated-column/db/schema.rb +21 -0
- data/examples/snippets/generated-column/db/seeds.rb +18 -0
- data/examples/snippets/generated-column/models/singer.rb +8 -0
- data/examples/snippets/hints/README.md +19 -0
- data/examples/snippets/hints/Rakefile +13 -0
- data/examples/snippets/hints/application.rb +47 -0
- data/examples/snippets/hints/config/database.yml +8 -0
- data/examples/snippets/hints/db/migrate/01_create_tables.rb +23 -0
- data/examples/snippets/hints/db/schema.rb +28 -0
- data/examples/snippets/hints/db/seeds.rb +29 -0
- data/examples/snippets/hints/models/album.rb +9 -0
- data/examples/snippets/hints/models/singer.rb +9 -0
- data/examples/snippets/migrations/README.md +43 -0
- data/examples/snippets/migrations/Rakefile +13 -0
- data/examples/snippets/migrations/application.rb +26 -0
- data/examples/snippets/migrations/config/database.yml +8 -0
- data/examples/snippets/migrations/db/migrate/01_create_tables.rb +28 -0
- data/examples/snippets/migrations/db/schema.rb +33 -0
- data/examples/snippets/migrations/db/seeds.rb +5 -0
- data/examples/snippets/migrations/models/album.rb +10 -0
- data/examples/snippets/migrations/models/singer.rb +10 -0
- data/examples/snippets/migrations/models/track.rb +9 -0
- data/examples/snippets/mutations/README.md +34 -0
- data/examples/snippets/mutations/Rakefile +13 -0
- data/examples/snippets/mutations/application.rb +47 -0
- data/examples/snippets/mutations/config/database.yml +8 -0
- data/examples/snippets/mutations/db/migrate/01_create_tables.rb +22 -0
- data/examples/snippets/mutations/db/schema.rb +27 -0
- data/examples/snippets/mutations/db/seeds.rb +25 -0
- data/examples/snippets/mutations/models/album.rb +9 -0
- data/examples/snippets/mutations/models/singer.rb +9 -0
- data/examples/snippets/optimistic-locking/README.md +12 -0
- data/examples/snippets/optimistic-locking/Rakefile +13 -0
- data/examples/snippets/optimistic-locking/application.rb +48 -0
- data/examples/snippets/optimistic-locking/config/database.yml +8 -0
- data/examples/snippets/optimistic-locking/db/migrate/01_create_tables.rb +26 -0
- data/examples/snippets/optimistic-locking/db/schema.rb +29 -0
- data/examples/snippets/optimistic-locking/db/seeds.rb +25 -0
- data/examples/snippets/optimistic-locking/models/album.rb +9 -0
- data/examples/snippets/optimistic-locking/models/singer.rb +9 -0
- data/examples/snippets/partitioned-dml/README.md +16 -0
- data/examples/snippets/partitioned-dml/Rakefile +13 -0
- data/examples/snippets/partitioned-dml/application.rb +48 -0
- data/examples/snippets/partitioned-dml/config/database.yml +8 -0
- data/examples/snippets/partitioned-dml/db/migrate/01_create_tables.rb +21 -0
- data/examples/snippets/partitioned-dml/db/schema.rb +26 -0
- data/examples/snippets/partitioned-dml/db/seeds.rb +29 -0
- data/examples/snippets/partitioned-dml/models/album.rb +9 -0
- data/examples/snippets/partitioned-dml/models/singer.rb +9 -0
- data/examples/snippets/quickstart/README.md +26 -0
- data/examples/snippets/quickstart/Rakefile +13 -0
- data/examples/snippets/quickstart/application.rb +51 -0
- data/examples/snippets/quickstart/config/database.yml +8 -0
- data/examples/snippets/quickstart/db/migrate/01_create_tables.rb +21 -0
- data/examples/snippets/quickstart/db/schema.rb +26 -0
- data/examples/snippets/quickstart/db/seeds.rb +24 -0
- data/examples/snippets/quickstart/models/album.rb +9 -0
- data/examples/snippets/quickstart/models/singer.rb +9 -0
- data/examples/snippets/read-only-transactions/README.md +13 -0
- data/examples/snippets/read-only-transactions/Rakefile +13 -0
- data/examples/snippets/read-only-transactions/application.rb +77 -0
- data/examples/snippets/read-only-transactions/config/database.yml +8 -0
- data/examples/snippets/read-only-transactions/db/migrate/01_create_tables.rb +21 -0
- data/examples/snippets/read-only-transactions/db/schema.rb +26 -0
- data/examples/snippets/read-only-transactions/db/seeds.rb +24 -0
- data/examples/snippets/read-only-transactions/models/album.rb +9 -0
- data/examples/snippets/read-only-transactions/models/singer.rb +9 -0
- data/examples/snippets/read-write-transactions/README.md +12 -0
- data/examples/snippets/read-write-transactions/Rakefile +13 -0
- data/examples/snippets/read-write-transactions/application.rb +39 -0
- data/examples/snippets/read-write-transactions/config/database.yml +8 -0
- data/examples/snippets/read-write-transactions/db/migrate/01_create_tables.rb +22 -0
- data/examples/snippets/read-write-transactions/db/schema.rb +27 -0
- data/examples/snippets/read-write-transactions/db/seeds.rb +25 -0
- data/examples/snippets/read-write-transactions/models/album.rb +9 -0
- data/examples/snippets/read-write-transactions/models/singer.rb +9 -0
- data/examples/snippets/stale-reads/README.md +27 -0
- data/examples/snippets/stale-reads/Rakefile +13 -0
- data/examples/snippets/stale-reads/application.rb +63 -0
- data/examples/snippets/stale-reads/config/database.yml +8 -0
- data/examples/snippets/stale-reads/db/migrate/01_create_tables.rb +21 -0
- data/examples/snippets/stale-reads/db/schema.rb +26 -0
- data/examples/snippets/stale-reads/db/seeds.rb +24 -0
- data/examples/snippets/stale-reads/models/album.rb +9 -0
- data/examples/snippets/stale-reads/models/singer.rb +9 -0
- data/examples/snippets/timestamp-data-type/README.md +17 -0
- data/examples/snippets/timestamp-data-type/Rakefile +13 -0
- data/examples/snippets/timestamp-data-type/application.rb +42 -0
- data/examples/snippets/timestamp-data-type/config/database.yml +8 -0
- data/examples/snippets/timestamp-data-type/db/migrate/01_create_tables.rb +21 -0
- data/examples/snippets/timestamp-data-type/db/schema.rb +21 -0
- data/examples/snippets/timestamp-data-type/db/seeds.rb +6 -0
- data/examples/snippets/timestamp-data-type/models/meeting.rb +19 -0
- data/examples/solidus/README.md +172 -0
- data/lib/active_record/connection_adapters/spanner/database_statements.rb +244 -266
- data/lib/active_record/connection_adapters/spanner/quoting.rb +42 -50
- data/lib/active_record/connection_adapters/spanner/schema_cache.rb +43 -0
- data/lib/active_record/connection_adapters/spanner/schema_creation.rb +125 -9
- data/lib/active_record/connection_adapters/spanner/schema_definitions.rb +122 -0
- data/lib/active_record/connection_adapters/spanner/schema_dumper.rb +19 -0
- data/lib/active_record/connection_adapters/spanner/schema_statements.rb +553 -139
- data/lib/active_record/connection_adapters/spanner/type_metadata.rb +37 -0
- data/lib/active_record/connection_adapters/spanner_adapter.rb +185 -78
- data/lib/active_record/tasks/spanner_database_tasks.rb +74 -0
- data/lib/active_record/type/spanner/array.rb +32 -0
- data/lib/active_record/type/spanner/bytes.rb +26 -0
- data/lib/active_record/type/spanner/spanner_active_record_converter.rb +33 -0
- data/lib/active_record/type/spanner/time.rb +37 -0
- data/lib/activerecord-spanner-adapter.rb +23 -0
- data/lib/activerecord_spanner_adapter/base.rb +238 -0
- data/lib/activerecord_spanner_adapter/connection.rb +350 -0
- data/lib/activerecord_spanner_adapter/errors.rb +13 -0
- data/lib/activerecord_spanner_adapter/foreign_key.rb +29 -0
- data/lib/activerecord_spanner_adapter/index/column.rb +38 -0
- data/lib/activerecord_spanner_adapter/index.rb +80 -0
- data/lib/activerecord_spanner_adapter/information_schema.rb +262 -0
- data/lib/activerecord_spanner_adapter/primary_key.rb +31 -0
- data/lib/activerecord_spanner_adapter/table/column.rb +59 -0
- data/lib/activerecord_spanner_adapter/table.rb +61 -0
- data/lib/activerecord_spanner_adapter/transaction.rb +154 -0
- data/lib/activerecord_spanner_adapter/version.rb +9 -0
- data/lib/arel/visitors/spanner.rb +111 -0
- data/lib/spanner_client_ext.rb +107 -0
- data/renovate.json +5 -0
- metadata +405 -34
- data/.travis.yml +0 -5
- data/lib/active_record/connection_adapters/spanner/client.rb +0 -190
- data/lib/active_record/connection_adapters/spanner.rb +0 -10
- data/lib/activerecord-spanner-adapter/version.rb +0 -3
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
|
-
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
2
|
+
SHA256:
|
|
3
|
+
metadata.gz: e91546c93ad037bfaa453c4e80f0f9bd3ce5f6ced1e98cfd74ea92a8495996ec
|
|
4
|
+
data.tar.gz: 1180932c1f3644a0338b856f1b170ed5a4aa2735ac8410071981db28697c7bf4
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: cbb029027fc34279f095294df20756d1bcfa2a077b45919d4447d4be8a29f7fb5bbb911896b8a5a3441766af735a0ec3ad38b4dfae2527ef401c1d4e9a39132e
|
|
7
|
+
data.tar.gz: 33a6509c950572f3880dc9d48c34dc35784909b46fc1d1226f2e20c57c77e734c53149f6620be17a8d3e85b4e086624bf545dae5bcc91a671cd1089cad885b36
|
data/.github/CODEOWNERS
ADDED
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
# Code owners file.
|
|
2
|
+
# This file controls who is tagged for review for any given pull request.
|
|
3
|
+
#
|
|
4
|
+
# For syntax help see:
|
|
5
|
+
# https://help.github.com/en/github/creating-cloning-and-archiving-repositories/about-code-owners#codeowners-syntax
|
|
6
|
+
|
|
7
|
+
* @jiren @skuruppu @dazuma @hengfengli @olavloite @xiangshen-dk
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
rebaseMergeAllowed: true
|
|
2
|
+
squashMergeAllowed: true
|
|
3
|
+
mergeCommitAllowed: false
|
|
4
|
+
branchProtectionRules:
|
|
5
|
+
- pattern: master
|
|
6
|
+
isAdminEnforced: true
|
|
7
|
+
requiredStatusCheckContexts:
|
|
8
|
+
- 'cla/google'
|
|
9
|
+
requiredApprovingReviewCount: 1
|
|
10
|
+
requiresCodeOwnerReviews: true
|
|
11
|
+
requiresStrictStatusChecks: true
|
|
12
|
+
permissionRules:
|
|
13
|
+
- team: yoshi-ruby
|
|
14
|
+
permission: push
|
|
15
|
+
- team: yoshi-ruby-admins
|
|
16
|
+
permission: admin
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
on:
|
|
2
|
+
push:
|
|
3
|
+
branches:
|
|
4
|
+
- master
|
|
5
|
+
pull_request:
|
|
6
|
+
name: acceptance tests on emulator
|
|
7
|
+
jobs:
|
|
8
|
+
test:
|
|
9
|
+
runs-on: ubuntu-latest
|
|
10
|
+
|
|
11
|
+
services:
|
|
12
|
+
emulator:
|
|
13
|
+
image: gcr.io/cloud-spanner-emulator/emulator:latest
|
|
14
|
+
ports:
|
|
15
|
+
- 9010:9010
|
|
16
|
+
- 9020:9020
|
|
17
|
+
|
|
18
|
+
strategy:
|
|
19
|
+
max-parallel: 4
|
|
20
|
+
matrix:
|
|
21
|
+
ruby: [2.6, 2.7, 3.0]
|
|
22
|
+
ar: [6.0.4, 6.1.4]
|
|
23
|
+
# Exclude Ruby 3.0 and ActiveRecord 6.0.x as that combination is not supported.
|
|
24
|
+
exclude:
|
|
25
|
+
- ruby: 3.0
|
|
26
|
+
ar: 6.0.4
|
|
27
|
+
steps:
|
|
28
|
+
- uses: actions/checkout@v2
|
|
29
|
+
- name: Set up Ruby
|
|
30
|
+
# To automatically get bug fixes and new Ruby versions for ruby/setup-ruby
|
|
31
|
+
# (see https://github.com/ruby/setup-ruby#versioning):
|
|
32
|
+
uses: ruby/setup-ruby@v1
|
|
33
|
+
with:
|
|
34
|
+
bundler-cache: false
|
|
35
|
+
ruby-version: ${{ matrix.ruby }}
|
|
36
|
+
- name: Set ActiveRecord version
|
|
37
|
+
run: sed -i "s/\"activerecord\", \"~> 6.1.4\"/\"activerecord\", \"${{ matrix.ar }}\"/" activerecord-spanner-adapter.gemspec
|
|
38
|
+
- name: Install dependencies
|
|
39
|
+
run: bundle install
|
|
40
|
+
- name: Run acceptance tests on emulator
|
|
41
|
+
run: bundle exec rake acceptance
|
|
42
|
+
env:
|
|
43
|
+
SPANNER_EMULATOR_HOST: localhost:9010
|
|
44
|
+
SPANNER_TEST_PROJECT: test-project
|
|
45
|
+
SPANNER_TEST_INSTANCE: test-instance
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
on:
|
|
2
|
+
push:
|
|
3
|
+
branches:
|
|
4
|
+
- master
|
|
5
|
+
pull_request:
|
|
6
|
+
name: acceptance tests on production
|
|
7
|
+
jobs:
|
|
8
|
+
check-env:
|
|
9
|
+
outputs:
|
|
10
|
+
has-key: ${{ steps.project-id.outputs.defined }}
|
|
11
|
+
runs-on: ubuntu-latest
|
|
12
|
+
steps:
|
|
13
|
+
- id: project-id
|
|
14
|
+
env:
|
|
15
|
+
GCP_PROJECT_ID: ${{ secrets.GCP_PROJECT_ID }}
|
|
16
|
+
if: "${{ env.GCP_PROJECT_ID != '' }}"
|
|
17
|
+
run: echo "::set-output name=defined::true"
|
|
18
|
+
|
|
19
|
+
test:
|
|
20
|
+
needs: [check-env]
|
|
21
|
+
if: needs.check-env.outputs.has-key == 'true'
|
|
22
|
+
runs-on: ubuntu-latest
|
|
23
|
+
|
|
24
|
+
strategy:
|
|
25
|
+
max-parallel: 4
|
|
26
|
+
matrix:
|
|
27
|
+
ruby: [3.0]
|
|
28
|
+
steps:
|
|
29
|
+
- uses: actions/checkout@v2
|
|
30
|
+
- name: Set up Ruby
|
|
31
|
+
# To automatically get bug fixes and new Ruby versions for ruby/setup-ruby
|
|
32
|
+
# (see https://github.com/ruby/setup-ruby#versioning):
|
|
33
|
+
uses: ruby/setup-ruby@v1
|
|
34
|
+
with:
|
|
35
|
+
bundler-cache: true
|
|
36
|
+
ruby-version: ${{ matrix.ruby }}
|
|
37
|
+
- name: Setup GCloud
|
|
38
|
+
uses: google-github-actions/setup-gcloud@master
|
|
39
|
+
with:
|
|
40
|
+
project_id: ${{ secrets.GCP_PROJECT_ID }}
|
|
41
|
+
service_account_key: ${{ secrets.GCP_SA_KEY }}
|
|
42
|
+
export_default_credentials: true
|
|
43
|
+
- name: Install dependencies
|
|
44
|
+
run: bundle install
|
|
45
|
+
- name: Run acceptance tests on production
|
|
46
|
+
run: bundle exec rake acceptance\[,,,"exclude cases/migration"\]
|
|
47
|
+
env:
|
|
48
|
+
SPANNER_TEST_PROJECT: ${{ secrets.GCP_PROJECT_ID }}
|
|
49
|
+
SPANNER_TEST_INSTANCE: ruby-activerecord-test
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
on:
|
|
2
|
+
push:
|
|
3
|
+
branches:
|
|
4
|
+
- master
|
|
5
|
+
pull_request:
|
|
6
|
+
name: ci
|
|
7
|
+
jobs:
|
|
8
|
+
test:
|
|
9
|
+
runs-on: ubuntu-latest
|
|
10
|
+
strategy:
|
|
11
|
+
max-parallel: 4
|
|
12
|
+
matrix:
|
|
13
|
+
ruby: [2.6, 2.7, 3.0]
|
|
14
|
+
ar: [6.0.4, 6.1.4]
|
|
15
|
+
# Exclude Ruby 3.0 and ActiveRecord 6.0.x as that combination is not supported.
|
|
16
|
+
exclude:
|
|
17
|
+
- ruby: 3.0
|
|
18
|
+
ar: 6.0.4
|
|
19
|
+
steps:
|
|
20
|
+
- uses: actions/checkout@v2
|
|
21
|
+
- name: Set up Ruby
|
|
22
|
+
# To automatically get bug fixes and new Ruby versions for ruby/setup-ruby
|
|
23
|
+
# (see https://github.com/ruby/setup-ruby#versioning):
|
|
24
|
+
uses: ruby/setup-ruby@v1
|
|
25
|
+
with:
|
|
26
|
+
bundler-cache: false
|
|
27
|
+
ruby-version: ${{ matrix.ruby }}
|
|
28
|
+
- name: Set ActiveRecord version
|
|
29
|
+
run: sed -i "s/\"activerecord\", \"~> 6.1.4\"/\"activerecord\", \"${{ matrix.ar }}\"/" activerecord-spanner-adapter.gemspec
|
|
30
|
+
- name: Install dependencies
|
|
31
|
+
run: bundle install
|
|
32
|
+
- name: Run tests
|
|
33
|
+
run: bundle exec rake test
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
on:
|
|
2
|
+
schedule:
|
|
3
|
+
# 06:00 UTC
|
|
4
|
+
- cron: '0 6 * * *'
|
|
5
|
+
name: nightly acceptance tests on emulator
|
|
6
|
+
jobs:
|
|
7
|
+
test:
|
|
8
|
+
runs-on: ubuntu-latest
|
|
9
|
+
|
|
10
|
+
services:
|
|
11
|
+
emulator:
|
|
12
|
+
image: gcr.io/cloud-spanner-emulator/emulator:latest
|
|
13
|
+
ports:
|
|
14
|
+
- 9010:9010
|
|
15
|
+
- 9020:9020
|
|
16
|
+
|
|
17
|
+
strategy:
|
|
18
|
+
max-parallel: 4
|
|
19
|
+
matrix:
|
|
20
|
+
# Run acceptance tests all supported combinations of Ruby and ActiveRecord.
|
|
21
|
+
ruby: [2.5, 2.6, 2.7, 3.0]
|
|
22
|
+
ar: [6.0.0, 6.0.1, 6.0.2.2, 6.0.3.7, 6.0.4, 6.1.0, 6.1.1, 6.1.2.1, 6.1.3.2, 6.1.4]
|
|
23
|
+
# Exclude Ruby 3.0 and ActiveRecord 6.0.x as that combination is not supported.
|
|
24
|
+
exclude:
|
|
25
|
+
- ruby: 3.0
|
|
26
|
+
ar: 6.0.0
|
|
27
|
+
- ruby: 3.0
|
|
28
|
+
ar: 6.0.1
|
|
29
|
+
- ruby: 3.0
|
|
30
|
+
ar: 6.0.2.2
|
|
31
|
+
- ruby: 3.0
|
|
32
|
+
ar: 6.0.3.7
|
|
33
|
+
- ruby: 3.0
|
|
34
|
+
ar: 6.0.4
|
|
35
|
+
steps:
|
|
36
|
+
- uses: actions/checkout@v2
|
|
37
|
+
- name: Set up Ruby
|
|
38
|
+
uses: ruby/setup-ruby@v1
|
|
39
|
+
with:
|
|
40
|
+
# Disable caching as we are overriding the ActiveRecord below.
|
|
41
|
+
bundler-cache: false
|
|
42
|
+
ruby-version: ${{ matrix.ruby }}
|
|
43
|
+
- name: Set ActiveRecord version
|
|
44
|
+
run: sed -i "s/\"activerecord\", \"~> 6.1.4\"/\"activerecord\", \"${{ matrix.ar }}\"/" activerecord-spanner-adapter.gemspec
|
|
45
|
+
- name: Install dependencies
|
|
46
|
+
run: bundle install
|
|
47
|
+
- name: Run acceptance tests on emulator
|
|
48
|
+
run: bundle exec rake acceptance
|
|
49
|
+
env:
|
|
50
|
+
SPANNER_EMULATOR_HOST: localhost:9010
|
|
51
|
+
SPANNER_TEST_PROJECT: test-project
|
|
52
|
+
SPANNER_TEST_INSTANCE: test-instance
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
on:
|
|
2
|
+
schedule:
|
|
3
|
+
# 02:00 UTC
|
|
4
|
+
- cron: '0 2 * * *'
|
|
5
|
+
name: nightly acceptance tests on production
|
|
6
|
+
jobs:
|
|
7
|
+
test:
|
|
8
|
+
runs-on: ubuntu-latest
|
|
9
|
+
|
|
10
|
+
strategy:
|
|
11
|
+
max-parallel: 4
|
|
12
|
+
matrix:
|
|
13
|
+
ruby: [3.0]
|
|
14
|
+
steps:
|
|
15
|
+
- uses: actions/checkout@v2
|
|
16
|
+
- name: Set up Ruby
|
|
17
|
+
# To automatically get bug fixes and new Ruby versions for ruby/setup-ruby
|
|
18
|
+
# (see https://github.com/ruby/setup-ruby#versioning):
|
|
19
|
+
uses: ruby/setup-ruby@v1
|
|
20
|
+
with:
|
|
21
|
+
bundler-cache: true
|
|
22
|
+
ruby-version: ${{ matrix.ruby }}
|
|
23
|
+
- name: Setup GCloud
|
|
24
|
+
uses: google-github-actions/setup-gcloud@master
|
|
25
|
+
with:
|
|
26
|
+
project_id: ${{ secrets.GCP_PROJECT_ID }}
|
|
27
|
+
service_account_key: ${{ secrets.GCP_SA_KEY }}
|
|
28
|
+
export_default_credentials: true
|
|
29
|
+
- name: Install dependencies
|
|
30
|
+
run: bundle install
|
|
31
|
+
- name: Run acceptance tests on production
|
|
32
|
+
run: bundle exec rake acceptance
|
|
33
|
+
env:
|
|
34
|
+
SPANNER_TEST_PROJECT: ${{ secrets.GCP_PROJECT_ID }}
|
|
35
|
+
SPANNER_TEST_INSTANCE: ruby-activerecord-test
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
on:
|
|
2
|
+
schedule:
|
|
3
|
+
# 05:30 UTC
|
|
4
|
+
- cron: '30 5 * * *'
|
|
5
|
+
name: nightly-unit-tests
|
|
6
|
+
jobs:
|
|
7
|
+
test:
|
|
8
|
+
runs-on: ubuntu-latest
|
|
9
|
+
strategy:
|
|
10
|
+
max-parallel: 4
|
|
11
|
+
matrix:
|
|
12
|
+
# Run unit tests all supported combinations of Ruby and ActiveRecord.
|
|
13
|
+
ruby: [2.5, 2.6, 2.7, 3.0]
|
|
14
|
+
ar: [6.0.0, 6.0.1, 6.0.2.2, 6.0.3.7, 6.0.4, 6.1.0, 6.1.1, 6.1.2.1, 6.1.3.2, 6.1.4]
|
|
15
|
+
# Exclude Ruby 3.0 and ActiveRecord 6.0.x as that combination is not supported.
|
|
16
|
+
exclude:
|
|
17
|
+
- ruby: 3.0
|
|
18
|
+
ar: 6.0.0
|
|
19
|
+
- ruby: 3.0
|
|
20
|
+
ar: 6.0.1
|
|
21
|
+
- ruby: 3.0
|
|
22
|
+
ar: 6.0.2.2
|
|
23
|
+
- ruby: 3.0
|
|
24
|
+
ar: 6.0.3.7
|
|
25
|
+
- ruby: 3.0
|
|
26
|
+
ar: 6.0.4
|
|
27
|
+
steps:
|
|
28
|
+
- uses: actions/checkout@v2
|
|
29
|
+
- name: Set up Ruby
|
|
30
|
+
uses: ruby/setup-ruby@v1
|
|
31
|
+
with:
|
|
32
|
+
# Disable caching as we are overriding the ActiveRecord below.
|
|
33
|
+
bundler-cache: false
|
|
34
|
+
ruby-version: ${{ matrix.ruby }}
|
|
35
|
+
- name: Set ActiveRecord version
|
|
36
|
+
run: sed -i "s/\"activerecord\", \"~> 6.1.4\"/\"activerecord\", \"${{ matrix.ar }}\"/" activerecord-spanner-adapter.gemspec
|
|
37
|
+
- name: Install dependencies
|
|
38
|
+
run: bundle install
|
|
39
|
+
- name: Run tests
|
|
40
|
+
run: bundle exec rake test
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
name: release-please-label
|
|
2
|
+
on:
|
|
3
|
+
pull_request_target:
|
|
4
|
+
branches:
|
|
5
|
+
- master
|
|
6
|
+
types:
|
|
7
|
+
- opened
|
|
8
|
+
jobs:
|
|
9
|
+
release-please-label:
|
|
10
|
+
if: "${{ github.event.sender.login == 'yoshi-code-bot' && startsWith(github.event.pull_request.title, 'chore: release ') }}"
|
|
11
|
+
runs-on: ubuntu-latest
|
|
12
|
+
steps:
|
|
13
|
+
- name: ReleaseLabel
|
|
14
|
+
uses: actions/github-script@v4
|
|
15
|
+
with:
|
|
16
|
+
github-token: ${{secrets.YOSHI_APPROVER_TOKEN}}
|
|
17
|
+
script: |
|
|
18
|
+
core.info('Labeling release');
|
|
19
|
+
await github.issues.addLabels({
|
|
20
|
+
owner: context.repo.owner,
|
|
21
|
+
repo: context.repo.repo,
|
|
22
|
+
issue_number: context.payload.pull_request.number,
|
|
23
|
+
labels: ['autorelease: pending']
|
|
24
|
+
});
|
|
25
|
+
core.info('Labeled');
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
name: Release-Please
|
|
2
|
+
on:
|
|
3
|
+
schedule:
|
|
4
|
+
- cron: '27 8 * * *'
|
|
5
|
+
workflow_dispatch:
|
|
6
|
+
inputs:
|
|
7
|
+
gem:
|
|
8
|
+
description: "Name of single gem to release. Leave blank to check all gems."
|
|
9
|
+
required: false
|
|
10
|
+
args:
|
|
11
|
+
description: "Extra command line arguments."
|
|
12
|
+
required: false
|
|
13
|
+
|
|
14
|
+
jobs:
|
|
15
|
+
release-please:
|
|
16
|
+
if: ${{ github.repository == 'googleapis/ruby-spanner-activerecord' }}
|
|
17
|
+
runs-on: ubuntu-latest
|
|
18
|
+
env:
|
|
19
|
+
GITHUB_TOKEN: ${{ secrets.YOSHI_CODE_BOT_TOKEN }}
|
|
20
|
+
RELEASE_PLEASE_DISABLE: ${{ secrets.RELEASE_PLEASE_DISABLE }}
|
|
21
|
+
steps:
|
|
22
|
+
- name: Checkout repo
|
|
23
|
+
uses: actions/checkout@v2
|
|
24
|
+
- name: Install Ruby 2.7
|
|
25
|
+
uses: ruby/setup-ruby@v1
|
|
26
|
+
with:
|
|
27
|
+
ruby-version: "2.7"
|
|
28
|
+
- name: Install NodeJS 12.x
|
|
29
|
+
uses: actions/setup-node@v2
|
|
30
|
+
with:
|
|
31
|
+
node-version: "12.x"
|
|
32
|
+
- name: Install tools
|
|
33
|
+
run: "gem install --no-document toys && npm install release-please"
|
|
34
|
+
- name: execute
|
|
35
|
+
run: |
|
|
36
|
+
toys release please -v --fork \
|
|
37
|
+
--github-event-name=${{ github.event_name }} \
|
|
38
|
+
--version-file=lib/activerecord_spanner_adapter/version.rb \
|
|
39
|
+
${{ github.event.inputs.args }} -- ${{ github.event.inputs.gem }}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
name: rubocop
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
pull_request:
|
|
5
|
+
types: [opened, synchronize]
|
|
6
|
+
push:
|
|
7
|
+
branches: [ master ]
|
|
8
|
+
|
|
9
|
+
jobs:
|
|
10
|
+
build:
|
|
11
|
+
runs-on: ubuntu-latest
|
|
12
|
+
timeout-minutes: 10
|
|
13
|
+
|
|
14
|
+
steps:
|
|
15
|
+
- uses: actions/checkout@v2
|
|
16
|
+
- name: setup ruby
|
|
17
|
+
uses: ruby/setup-ruby@v1
|
|
18
|
+
with:
|
|
19
|
+
ruby-version: '2.5'
|
|
20
|
+
- name: cache gems
|
|
21
|
+
uses: actions/cache@v1
|
|
22
|
+
with:
|
|
23
|
+
path: vendor/bundle
|
|
24
|
+
key: ${{ runner.os }}-rubocop-${{ hashFiles('**/Gemfile.lock') }}
|
|
25
|
+
restore-keys: ${{ runner.os }}-rubocop-
|
|
26
|
+
- name: install gems
|
|
27
|
+
run: |
|
|
28
|
+
bundle config set path vendor/bundle
|
|
29
|
+
bundle install --jobs 4 --retry 3
|
|
30
|
+
- name: exec rubocop
|
|
31
|
+
run: bundle exec rubocop --parallel
|
data/.gitignore
CHANGED
|
@@ -1,9 +1,71 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
/_yardoc/
|
|
1
|
+
*.gem
|
|
2
|
+
*.rbc
|
|
3
|
+
/.config
|
|
5
4
|
/coverage/
|
|
6
|
-
/
|
|
5
|
+
/InstalledFiles
|
|
7
6
|
/pkg/
|
|
8
7
|
/spec/reports/
|
|
8
|
+
/spec/examples.txt
|
|
9
|
+
/test/tmp/
|
|
10
|
+
/test/version_tmp/
|
|
9
11
|
/tmp/
|
|
12
|
+
|
|
13
|
+
# Node-related
|
|
14
|
+
/node_modules/
|
|
15
|
+
/package-lock.json
|
|
16
|
+
|
|
17
|
+
# Used by dotenv library to load environment variables.
|
|
18
|
+
# .env
|
|
19
|
+
|
|
20
|
+
# Ignore Byebug command history file.
|
|
21
|
+
.byebug_history
|
|
22
|
+
|
|
23
|
+
## Specific to RubyMotion:
|
|
24
|
+
.dat*
|
|
25
|
+
.repl_history
|
|
26
|
+
build/
|
|
27
|
+
*.bridgesupport
|
|
28
|
+
build-iPhoneOS/
|
|
29
|
+
build-iPhoneSimulator/
|
|
30
|
+
|
|
31
|
+
## Specific to RubyMotion (use of CocoaPods):
|
|
32
|
+
#
|
|
33
|
+
# We recommend against adding the Pods directory to your .gitignore. However
|
|
34
|
+
# you should judge for yourself, the pros and cons are mentioned at:
|
|
35
|
+
# https://guides.cocoapods.org/using/using-cocoapods.html#should-i-check-the-pods-directory-into-source-control
|
|
36
|
+
#
|
|
37
|
+
# vendor/Pods/
|
|
38
|
+
|
|
39
|
+
# Ignore RubyMine project files
|
|
40
|
+
.idea
|
|
41
|
+
|
|
42
|
+
## Documentation cache and generated files:
|
|
43
|
+
/.yardoc/
|
|
44
|
+
/_yardoc/
|
|
45
|
+
/doc/
|
|
46
|
+
/rdoc/
|
|
47
|
+
|
|
48
|
+
## Environment normalization:
|
|
49
|
+
/.bundle/
|
|
50
|
+
/vendor/bundle
|
|
51
|
+
/lib/bundler/man/
|
|
52
|
+
|
|
53
|
+
# for a library or gem, you might want to ignore these files since the code is
|
|
54
|
+
# intended to run in multiple environments; otherwise, check them in:
|
|
55
|
+
Gemfile.lock
|
|
56
|
+
.ruby-version
|
|
57
|
+
.ruby-gemset
|
|
58
|
+
|
|
59
|
+
# unless supporting rvm < 1.11.0 or doing something fancy, ignore this:
|
|
60
|
+
.rvmrc
|
|
61
|
+
|
|
62
|
+
# Used by RuboCop. Remote config files pulled in from inherit_from directive.
|
|
63
|
+
# .rubocop-https?--*
|
|
64
|
+
|
|
65
|
+
# Extra
|
|
66
|
+
.DS_Store
|
|
67
|
+
.DS_STORE
|
|
68
|
+
*.diff
|
|
69
|
+
*.swp
|
|
70
|
+
*.env*
|
|
71
|
+
byebug_history
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
#!/bin/bash
|
|
2
|
+
|
|
3
|
+
# Copyright 2021 Google LLC
|
|
4
|
+
#
|
|
5
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
6
|
+
# you may not use this file except in compliance with the License.
|
|
7
|
+
# You may obtain a copy of the License at
|
|
8
|
+
#
|
|
9
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
|
10
|
+
#
|
|
11
|
+
# Unless required by applicable law or agreed to in writing, software
|
|
12
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
13
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
14
|
+
# See the License for the specific language governing permissions and
|
|
15
|
+
# limitations under the License.
|
|
16
|
+
|
|
17
|
+
# This file is called in the early stage of `trampoline_v2.sh` to
|
|
18
|
+
# populate secrets needed for the CI builds.
|
|
19
|
+
|
|
20
|
+
set -eo pipefail
|
|
21
|
+
|
|
22
|
+
function now { date +"%Y-%m-%d %H:%M:%S" | tr -d '\n' ;}
|
|
23
|
+
function msg { println "$*" >&2 ;}
|
|
24
|
+
function println { printf '%s\n' "$(now) $*" ;}
|
|
25
|
+
|
|
26
|
+
# Populates requested secrets set in SECRET_MANAGER_KEYS
|
|
27
|
+
|
|
28
|
+
# In Kokoro CI builds, we use the service account attached to the
|
|
29
|
+
# Kokoro VM. This means we need to setup auth on other CI systems.
|
|
30
|
+
# For local run, we just use the gcloud command for retrieving the
|
|
31
|
+
# secrets.
|
|
32
|
+
|
|
33
|
+
if [[ "${RUNNING_IN_CI:-}" == "true" ]]; then
|
|
34
|
+
GCLOUD_COMMANDS=(
|
|
35
|
+
"docker"
|
|
36
|
+
"run"
|
|
37
|
+
"--entrypoint=gcloud"
|
|
38
|
+
"--volume=${KOKORO_GFILE_DIR}:${KOKORO_GFILE_DIR}"
|
|
39
|
+
"gcr.io/google.com/cloudsdktool/cloud-sdk"
|
|
40
|
+
)
|
|
41
|
+
if [[ "${TRAMPOLINE_CI:-}" == "kokoro" ]]; then
|
|
42
|
+
SECRET_LOCATION="${KOKORO_GFILE_DIR}/secret_manager"
|
|
43
|
+
else
|
|
44
|
+
echo "Authentication for this CI system is not implemented yet."
|
|
45
|
+
exit 2
|
|
46
|
+
# TODO: Determine appropriate SECRET_LOCATION and the GCLOUD_COMMANDS.
|
|
47
|
+
fi
|
|
48
|
+
else
|
|
49
|
+
# For local run, use /dev/shm or temporary directory for
|
|
50
|
+
# KOKORO_GFILE_DIR.
|
|
51
|
+
if [[ -d "/dev/shm" ]]; then
|
|
52
|
+
export KOKORO_GFILE_DIR=/dev/shm
|
|
53
|
+
else
|
|
54
|
+
export KOKORO_GFILE_DIR=$(mktemp -d -t ci-XXXXXXXX)
|
|
55
|
+
fi
|
|
56
|
+
SECRET_LOCATION="${KOKORO_GFILE_DIR}/secret_manager"
|
|
57
|
+
GCLOUD_COMMANDS=("gcloud")
|
|
58
|
+
fi
|
|
59
|
+
|
|
60
|
+
msg "Creating folder on disk for secrets: ${SECRET_LOCATION}"
|
|
61
|
+
mkdir -p ${SECRET_LOCATION}
|
|
62
|
+
|
|
63
|
+
for key in $(echo ${SECRET_MANAGER_KEYS} | sed "s/,/ /g")
|
|
64
|
+
do
|
|
65
|
+
msg "Retrieving secret ${key}"
|
|
66
|
+
"${GCLOUD_COMMANDS[@]}" \
|
|
67
|
+
secrets versions access latest \
|
|
68
|
+
--project cloud-devrel-kokoro-resources \
|
|
69
|
+
--secret $key > \
|
|
70
|
+
"$SECRET_LOCATION/$key"
|
|
71
|
+
if [[ $? == 0 ]]; then
|
|
72
|
+
msg "Secret written to ${SECRET_LOCATION}/${key}"
|
|
73
|
+
else
|
|
74
|
+
msg "Error retrieving secret ${key}"
|
|
75
|
+
exit 2
|
|
76
|
+
fi
|
|
77
|
+
done
|
data/.kokoro/release.cfg
ADDED
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
# Format: //devtools/kokoro/config/proto/build.proto
|
|
2
|
+
|
|
3
|
+
# Build logs will be here
|
|
4
|
+
action {
|
|
5
|
+
define_artifacts {
|
|
6
|
+
regex: "**/*sponge_log.xml"
|
|
7
|
+
}
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
# Download resources for system tests (service account key, etc.)
|
|
11
|
+
gfile_resources: "/bigstore/cloud-devrel-kokoro-resources/google-cloud-ruby"
|
|
12
|
+
|
|
13
|
+
# Download trampoline resources.
|
|
14
|
+
gfile_resources: "/bigstore/cloud-devrel-kokoro-resources/trampoline"
|
|
15
|
+
|
|
16
|
+
# Use the trampoline script to run in docker.
|
|
17
|
+
build_file: "ruby-spanner-activerecord/.kokoro/trampoline_v2.sh"
|
|
18
|
+
|
|
19
|
+
# Configure the docker image for kokoro-trampoline.
|
|
20
|
+
env_vars: {
|
|
21
|
+
key: "TRAMPOLINE_IMAGE"
|
|
22
|
+
value: "gcr.io/cloud-devrel-kokoro-resources/yoshi-ruby/release"
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
env_vars: {
|
|
26
|
+
key: "TRAMPOLINE_BUILD_FILE"
|
|
27
|
+
value: ".kokoro/release.sh"
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
env_vars: {
|
|
31
|
+
key: "SECRET_MANAGER_KEYS"
|
|
32
|
+
value: "releasetool-publish-reporter-app,releasetool-publish-reporter-googleapis-installation,releasetool-publish-reporter-pem,docuploader_service_account"
|
|
33
|
+
}
|
data/.kokoro/release.sh
ADDED
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
#!/bin/bash
|
|
2
|
+
|
|
3
|
+
set -eo pipefail
|
|
4
|
+
|
|
5
|
+
# Install gems in the user directory because the default install directory
|
|
6
|
+
# is in a read-only location.
|
|
7
|
+
export GEM_HOME=$HOME/.gem
|
|
8
|
+
export PATH=$GEM_HOME/bin:$PATH
|
|
9
|
+
|
|
10
|
+
python3 -m pip install git+https://github.com/googleapis/releasetool
|
|
11
|
+
python3 -m pip install gcp-docuploader
|
|
12
|
+
gem install --no-document toys
|
|
13
|
+
|
|
14
|
+
python3 -m releasetool publish-reporter-script > /tmp/publisher-script; source /tmp/publisher-script
|
|
15
|
+
toys release perform -v --enable-docs < /dev/null
|