tapsoob 0.7.6 → 0.7.7
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/.gitlab-ci.yml +80 -9
- data/lib/tapsoob/operation/pull.rb +3 -3
- data/lib/tapsoob/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 27060ba6872d5c43a5fa03f972562ecef65f762217eb51db2757a527a403a407
|
|
4
|
+
data.tar.gz: 05447b9cda97c5f77c52520863ba949ce780f731b66883556d2b34b6479a5ac6
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: eea4a49d3484dc687776b9b108a1334bc2fa77d485ba7a8f7875f5418254c0f077592f7631c419e992e9b50f47a2a60a629cf46bb786a73681b91753f4aa6c3e
|
|
7
|
+
data.tar.gz: c661e5ae7eccbc18da7d7058457f55d380c80f107cac88ca7e8978e8df74f0ea92edff18a5ff92eaccb2b26d1a61b8acd8d53daa8202eea0be5b4dbef8191613
|
data/.gitlab-ci.yml
CHANGED
|
@@ -1,6 +1,15 @@
|
|
|
1
|
+
default:
|
|
2
|
+
retry:
|
|
3
|
+
max: 2
|
|
4
|
+
when:
|
|
5
|
+
- runner_system_failure
|
|
6
|
+
- stuck_or_timeout_failure
|
|
7
|
+
- script_failure
|
|
8
|
+
|
|
1
9
|
stages:
|
|
2
10
|
- build
|
|
3
11
|
- publish
|
|
12
|
+
- cleanup
|
|
4
13
|
|
|
5
14
|
build-jar:
|
|
6
15
|
stage: build
|
|
@@ -9,16 +18,44 @@ build-jar:
|
|
|
9
18
|
- linux
|
|
10
19
|
- docker
|
|
11
20
|
before_script:
|
|
12
|
-
- apt-get update && apt-get install -y git
|
|
13
|
-
- update-ca-certificates
|
|
21
|
+
- apt-get update && apt-get install -y git curl jq
|
|
14
22
|
- gem install rake
|
|
15
23
|
- mkdir -p config dist
|
|
16
24
|
- echo "$WARBLE_CONFIG" > config/warble.rb
|
|
17
25
|
script:
|
|
26
|
+
- VERSION=${CI_COMMIT_TAG:-$CI_COMMIT_SHORT_SHA}
|
|
27
|
+
- |
|
|
28
|
+
# Find all packages with this version
|
|
29
|
+
echo "Checking for existing packages with version ${VERSION}..."
|
|
30
|
+
PACKAGES=$(curl -s --header "JOB-TOKEN: $CI_JOB_TOKEN" \
|
|
31
|
+
"${GITLAB_INTERNAL_API}/projects/${CI_PROJECT_ID}/packages?package_name=tapsoob&per_page=100")
|
|
32
|
+
|
|
33
|
+
# Get package IDs matching this version
|
|
34
|
+
MATCHING_IDS=$(echo "$PACKAGES" | jq -r --arg v "$VERSION" '.[] | select(.version == $v) | .id')
|
|
35
|
+
COUNT=$(echo "$MATCHING_IDS" | grep -c . || true)
|
|
36
|
+
|
|
37
|
+
echo "Found $COUNT package(s) with version ${VERSION}"
|
|
38
|
+
|
|
39
|
+
if [ "$COUNT" -gt 1 ]; then
|
|
40
|
+
echo "Multiple packages found, cleaning up duplicates..."
|
|
41
|
+
# Keep the first one, delete the rest
|
|
42
|
+
KEEP_ID=$(echo "$MATCHING_IDS" | head -n 1)
|
|
43
|
+
echo "$MATCHING_IDS" | tail -n +2 | while read -r ID; do
|
|
44
|
+
echo "Deleting duplicate package ID: $ID"
|
|
45
|
+
curl -s --request DELETE --header "JOB-TOKEN: $CI_JOB_TOKEN" \
|
|
46
|
+
"${GITLAB_INTERNAL_API}/projects/${CI_PROJECT_ID}/packages/${ID}"
|
|
47
|
+
done
|
|
48
|
+
echo "Kept package ID: $KEEP_ID, skipping build"
|
|
49
|
+
exit 0
|
|
50
|
+
elif [ "$COUNT" -eq 1 ]; then
|
|
51
|
+
echo "Package tapsoob-${VERSION}.jar already exists, skipping build"
|
|
52
|
+
exit 0
|
|
53
|
+
fi
|
|
54
|
+
|
|
55
|
+
echo "No existing package found, proceeding with build..."
|
|
18
56
|
- bundle install
|
|
19
57
|
- bundle exec rake jar
|
|
20
|
-
- VERSION
|
|
21
|
-
- 'curl --fail --verbose --header "JOB-TOKEN: $CI_JOB_TOKEN" --upload-file dist/tapsoob.jar "${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/packages/generic/tapsoob/${VERSION}/tapsoob-${VERSION}.jar"'
|
|
58
|
+
- 'curl --fail --header "JOB-TOKEN: $CI_JOB_TOKEN" --upload-file dist/tapsoob.jar "${GITLAB_INTERNAL_API}/projects/${CI_PROJECT_ID}/packages/generic/tapsoob/${VERSION}/tapsoob-${VERSION}.jar"'
|
|
22
59
|
|
|
23
60
|
publish-gem:
|
|
24
61
|
stage: publish
|
|
@@ -27,8 +64,7 @@ publish-gem:
|
|
|
27
64
|
- linux
|
|
28
65
|
- docker
|
|
29
66
|
before_script:
|
|
30
|
-
- apt-get update && apt-get install -y git
|
|
31
|
-
- update-ca-certificates
|
|
67
|
+
- apt-get update && apt-get install -y git
|
|
32
68
|
- mkdir -p ~/.gem
|
|
33
69
|
- |
|
|
34
70
|
cat > ~/.gem/credentials << EOF
|
|
@@ -49,8 +85,7 @@ publish-gem-jruby:
|
|
|
49
85
|
- linux
|
|
50
86
|
- docker
|
|
51
87
|
before_script:
|
|
52
|
-
- apt-get update && apt-get install -y git
|
|
53
|
-
- update-ca-certificates
|
|
88
|
+
- apt-get update && apt-get install -y git
|
|
54
89
|
- mkdir -p ~/.gem
|
|
55
90
|
- |
|
|
56
91
|
cat > ~/.gem/credentials << EOF
|
|
@@ -62,4 +97,40 @@ publish-gem-jruby:
|
|
|
62
97
|
- gem build tapsoob.gemspec
|
|
63
98
|
- gem push tapsoob-*.gem
|
|
64
99
|
rules:
|
|
65
|
-
- if: $CI_COMMIT_TAG
|
|
100
|
+
- if: $CI_COMMIT_TAG
|
|
101
|
+
|
|
102
|
+
cleanup-packages:
|
|
103
|
+
stage: cleanup
|
|
104
|
+
image: alpine:latest
|
|
105
|
+
tags:
|
|
106
|
+
- linux
|
|
107
|
+
- docker
|
|
108
|
+
rules:
|
|
109
|
+
- if: $CI_PIPELINE_SOURCE == "schedule"
|
|
110
|
+
- when: manual
|
|
111
|
+
allow_failure: true
|
|
112
|
+
script:
|
|
113
|
+
- apk add --no-cache curl jq
|
|
114
|
+
- |
|
|
115
|
+
echo "Fetching packages..."
|
|
116
|
+
PACKAGES=$(curl -s --header "JOB-TOKEN: $CI_JOB_TOKEN" \
|
|
117
|
+
"${GITLAB_INTERNAL_API}/projects/${CI_PROJECT_ID}/packages?per_page=100")
|
|
118
|
+
|
|
119
|
+
# Get latest nightly (8 hex chars = commit SHA)
|
|
120
|
+
LATEST_NIGHTLY=$(echo "$PACKAGES" | jq -r '[.[] | select(.version | test("^[0-9a-f]{8}$"))] | sort_by(.created_at) | reverse | .[0].version // empty')
|
|
121
|
+
echo "Latest nightly to keep: $LATEST_NIGHTLY"
|
|
122
|
+
|
|
123
|
+
# Process each package
|
|
124
|
+
echo "$PACKAGES" | jq -r '.[] | "\(.id) \(.version)"' | while read -r ID VERSION; do
|
|
125
|
+
if echo "$VERSION" | grep -qE '^[0-9a-f]{8}$'; then
|
|
126
|
+
if [ "$VERSION" = "$LATEST_NIGHTLY" ]; then
|
|
127
|
+
echo "Keeping latest nightly: $VERSION"
|
|
128
|
+
else
|
|
129
|
+
echo "Deleting old nightly: $VERSION (ID: $ID)"
|
|
130
|
+
curl -s --request DELETE --header "JOB-TOKEN: $CI_JOB_TOKEN" \
|
|
131
|
+
"${GITLAB_INTERNAL_API}/projects/${CI_PROJECT_ID}/packages/${ID}"
|
|
132
|
+
fi
|
|
133
|
+
else
|
|
134
|
+
echo "Keeping tagged release: $VERSION"
|
|
135
|
+
fi
|
|
136
|
+
done
|
|
@@ -40,7 +40,7 @@ module Tapsoob
|
|
|
40
40
|
end
|
|
41
41
|
|
|
42
42
|
def pull_schema
|
|
43
|
-
log.info "Receiving schema"
|
|
43
|
+
log.info "Receiving schema" if opts[:progress]
|
|
44
44
|
Tapsoob::ProgressEvent.schema_start(tables.size)
|
|
45
45
|
|
|
46
46
|
progress = opts[:progress] ? Tapsoob::Progress::Bar.new('Schema', tables.size) : nil
|
|
@@ -60,9 +60,9 @@ module Tapsoob
|
|
|
60
60
|
end
|
|
61
61
|
|
|
62
62
|
def pull_data
|
|
63
|
-
log.info "Receiving data"
|
|
63
|
+
log.info "Receiving data" if opts[:progress]
|
|
64
64
|
|
|
65
|
-
log.info "#{tables.size} tables, #{format_number(record_count)} records"
|
|
65
|
+
log.info "#{tables.size} tables, #{format_number(record_count)} records" if opts[:progress]
|
|
66
66
|
Tapsoob::ProgressEvent.data_start(tables.size, record_count)
|
|
67
67
|
|
|
68
68
|
if parallel?
|
data/lib/tapsoob/version.rb
CHANGED
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: tapsoob
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.7.
|
|
4
|
+
version: 0.7.7
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Félix Bellanger
|
|
@@ -9,7 +9,7 @@ authors:
|
|
|
9
9
|
autorequire:
|
|
10
10
|
bindir: bin
|
|
11
11
|
cert_chain: []
|
|
12
|
-
date:
|
|
12
|
+
date: 2026-02-16 00:00:00.000000000 Z
|
|
13
13
|
dependencies:
|
|
14
14
|
- !ruby/object:Gem::Dependency
|
|
15
15
|
name: sequel
|