Skip to content

fix: reduce GitHub Actions storage costs#5922

Closed
NkwaTambe wants to merge 224 commits into
apache:developfrom
ADORSYS-GIS:fix/reduce-github-actions-storage-costs
Closed

fix: reduce GitHub Actions storage costs#5922
NkwaTambe wants to merge 224 commits into
apache:developfrom
ADORSYS-GIS:fix/reduce-github-actions-storage-costs

Conversation

@NkwaTambe
Copy link
Copy Markdown

Problem

The fineract repo is responsible for $102.02 of the org GitHub billing this month, despite being a public repo with free compute minutes. The cost comes from storage overages (artifacts + container images) exceeding the org free tier.

Current state: 21,697 artifacts accumulated, with retention of 5-30 days, across 15 workflow files.

Changes

1. Reduce artifact retention-days from 5/7/30 to 1 day

  • 29 occurrences across 15 workflow files changed to retention-days: 1
  • Artifacts auto-delete after 1 day instead of hoarding for weeks

2. Add concurrency groups to prevent duplicate runs

  • full-build-ci.yml: adds concurrency group ci-${{ github.ref }} with cancel-in-progress: true
  • publish-ghcr.yml: adds concurrency group publish-ghcr-${{ github.ref }} with cancel-in-progress: true
  • Cancels older in-progress runs when a new push arrives on the same branch, preventing wasted storage from redundant runs

Impact

  • Immediate: New artifacts expire after 1 day instead of 5-30 days
  • Prevents duplicate runs: Concurrency groups cancel redundant CI runs on same branch
  • No functional impact: All workflow jobs remain identical; only retention timing and run deduplication changed

Remaining manual cleanup needed

  1. Delete existing old artifacts — 17,670+ artifacts still in storage (API rate-limited during cleanup, needs org admin or GitHub Support to bulk-purge)
  2. Delete old container image versions from GHCR (fineract, fineract/sms-gateway, fineract/fineract-config-cli, etc.)
  3. Set org-wide spending limit to prevent future surprises
  4. Consider reducing Docker publish frequency — currently publishes on every push to develop

francis-pouatcha and others added 30 commits July 16, 2025 17:58
Signed-off-by: Francis Pouatcha <francis.pouatcha@adorsys.com>
…act-in-docker-setup-documentation

remote debugging for fineract in docker setup documentation
NkwaTambe and others added 24 commits May 4, 2026 15:59
Merge upstream Apache into adorsys fork – 2026-05-04
…ories-path

fix: update jib extraDirectories to use existing fineract-adorsys-pen…
Merge upstream Apache into adorsys fork – 2026-05-11
Merge upstream Apache into adorsys fork – 2026-05-18
Merge upstream Apache into adorsys fork – 2026-05-25
- Introduced OtpService for generating and validating OTPs with rate limiting and expiration.
- Added new models for OTP requests and responses.
- Implemented multiple SMS providers including Console, Mock, Twilio, and Custom HTTP.
- Enhanced SmsService to support provider selection and message normalization.
- Updated SmsController to handle OTP generation and validation endpoints.
- Added ApiExceptionHandler for centralized error handling.
- Integrated Micrometer for metrics tracking on SMS sending and OTP events.
- Created a comprehensive provider guide in PROVIDERS.md for easy configuration and usage.
- Refactored existing services to improve logging and error handling.
Merge upstream Apache into adorsys fork – 2026-06-01
Add support for Orange and Avlytext SMS providers, including OAuth2
authentication for Orange and API key authentication for Avlytext.
The implementation includes a retry mechanism with exponential backoff,
MSISDN normalization for Orange, and a new console provider for local
development testing.

- Add OrangeSmsProvider with OAuth2 client credentials flow
- Add AvlytextSmsProvider with API key authentication
- Implement RetryHelper for robust message delivery
- Add documentation for new providers and configuration
- Update application configuration and README with new environment variables
- Add console provider for local debugging and testing
…ub.com:ADORSYS-GIS/fineract into feat/implement-webank-registration-otp-service
…ration-otp-service

feat: Add OTP functionality and SMS provider integration
The paths filter used '../../fineract-adorsys-sms-gateway/**' which
never matches since the folder lives at repo root. Fixed to
'fineract-adorsys-sms-gateway/**' so merges to develop/main that
touch the SMS gateway actually trigger the Docker build and push.
- Reduce all artifact retention-days from 5/7/30 to 1 day
- Add concurrency groups to full-build-ci.yml and publish-ghcr.yml
  to cancel duplicate runs on the same branch
@NkwaTambe NkwaTambe closed this Jun 2, 2026
@adamsaghy
Copy link
Copy Markdown
Contributor

@NkwaTambe
"The fineract repo is responsible for $102.02 of the org GitHub billing this month, despite being a public repo with free compute minutes. The cost comes from storage overages (artifacts + container images) exceeding the org free tier."

Can you share more information about this? The billable amount should be still 0, no? Or were you running this on private repository?

@NkwaTambe
Copy link
Copy Markdown
Author

Hello @adamsaghy ,

The $102.02 was observed in our organization's GitHub billing and was associated with our public fork of Fineract, not the Apache Fineract repository itself.

The fork was consuming a significant amount of artifact and container storage, which is what led us to investigate and make the retention-related changes.

@adamsaghy
Copy link
Copy Markdown
Contributor

adamsaghy commented Jun 3, 2026

Hello @adamsaghy ,

The $102.02 was observed in our organization's GitHub billing and was associated with our public fork of Fineract, not the Apache Fineract repository itself.

The fork was consuming a significant amount of artifact and container storage, which is what led us to investigate and make the retention-related changes.

We are applying shorter retention as your PR recommended, but my understanding is if you are on public fork of Fineract, the cost might appear, but it is not billable.

@NkwaTambe
Copy link
Copy Markdown
Author

Hello @adamsaghy ,
The $102.02 was observed in our organization's GitHub billing and was associated with our public fork of Fineract, not the Apache Fineract repository itself.
The fork was consuming a significant amount of artifact and container storage, which is what led us to investigate and make the retention-related changes.

We are applying shorter retention as your PR recommended, but my understanding is if you are on public fork of Fineract, the cost might appear, but it is not billable.

Thanks for the clarification. I'll double-check the billing details with our team to better understand whether that amount was actually billable or just reported usage.

@adamsaghy
Copy link
Copy Markdown
Contributor

Hello @adamsaghy ,
The $102.02 was observed in our organization's GitHub billing and was associated with our public fork of Fineract, not the Apache Fineract repository itself.
The fork was consuming a significant amount of artifact and container storage, which is what led us to investigate and make the retention-related changes.

We are applying shorter retention as your PR recommended, but my understanding is if you are on public fork of Fineract, the cost might appear, but it is not billable.

Thanks for the clarification. I'll double-check the billing details with our team to better understand whether that amount was actually billable or just reported usage.

@NkwaTambe Hi

Have you had the chance to double check with your team?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

7 participants