2.2 KiB
2.2 KiB
GitLab Migration Plan & Status
What has been done
- The scheduled GitHub workflows have been disabled (
Collect AI Tasks,Sync Issues to File,Backup Dismissed Tasks) because of GitHub billing limits that were causing pipeline failures and costing money. - This repository is being prepared for migration to GitLab.
What needs to be done
In order to get the CI/CD and automation processes running again on GitLab, the following tasks must be completed:
-
Import the repository to GitLab:
- Migrate the source code.
- Migrate GitHub Issues, labels, and Projects.
-
Translate GitHub Actions to GitLab CI/CD (
.gitlab-ci.yml):Backup Dismissed Tasks: Implement as a GitLab Scheduled Pipeline running every 6 hours.Mark Issues for Review: Migrate to a standard GitLab CI pipeline triggered by pushes changingDONE_ISSUES.md.Collect AI Tasks: Implement as a GitLab Scheduled Pipeline running every 30 minutes.Update Task State on Issue Events: Create a GitLab webhook responding to issue events, or use GitLab CI pipelines with issue event triggers.Deploy to VPS: Migrate to a GitLab CI pipeline triggered on branch pushes tomain.Sync Issues to File: Migrate to a GitLab Scheduled Pipeline (every 30 minutes) and/or use GitLab Webhooks for issue event triggers.Sync OrgMyLife Plan to Projects Board: Migrate to a GitLab CI pipeline triggered by pushes toPLAN.md.
-
Configure CI/CD Variables:
- Transfer any repository secrets or environment variables (such as deployment keys, SSH credentials, API tokens) into GitLab CI/CD Settings under Variables.
-
Runner Configuration:
- Ensure the GitLab Runners have the necessary capabilities (e.g., Node.js environments) by utilizing standard Docker images in the
.gitlab-ci.yml(e.g.,image: node:20).
- Ensure the GitLab Runners have the necessary capabilities (e.g., Node.js environments) by utilizing standard Docker images in the
-
Optimize Pipeline Compute Efficiency:
- Analyze and optimize the pipeline execution to drastically reduce compute time.
- Context: The previous runner consumed ~2000 minutes of compute time in just 10 days, which is highly inefficient for a small application. Strategies like reducing cron frequencies, utilizing caching, and conditionally running jobs should be implemented.