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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: '025843acb6117da8a287d8045d29ee44acd503294df67d994df3340922d64202'
4
- data.tar.gz: 3633cee55115b8c561f858e430d58296ac98fd549ceaba7027d71cd1b6fcb9fc
3
+ metadata.gz: 27060ba6872d5c43a5fa03f972562ecef65f762217eb51db2757a527a403a407
4
+ data.tar.gz: 05447b9cda97c5f77c52520863ba949ce780f731b66883556d2b34b6479a5ac6
5
5
  SHA512:
6
- metadata.gz: 1a9e68a0faf27687651a60df90e7eeccdc4235df1a4854ac1d8a2d01acdc3270a6fed3aa296c5c07cc3f292dc5754a4619cf2299f44b6f4b708a2941f2e7548c
7
- data.tar.gz: f7824a83d062c93bd339ae92c47fa74f666cb53e2e6bd77791d35a24d73438f7e48bdc73813030b2cf3dbc95fe0aafd0e26e7a5f12c57d4321cff1c4e08ed7f9
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 ca-certificates
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=${CI_COMMIT_TAG:-$CI_COMMIT_SHORT_SHA}
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 ca-certificates
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 ca-certificates
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?
@@ -1,4 +1,4 @@
1
1
  # -*- encoding : utf-8 -*-
2
2
  module Tapsoob
3
- VERSION = "0.7.6".freeze
3
+ VERSION = "0.7.7".freeze
4
4
  end
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.6
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: 2025-12-07 00:00:00.000000000 Z
12
+ date: 2026-02-16 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: sequel