Files

32 lines
2.2 KiB
Markdown

# 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:
1. **Import the repository to GitLab**:
- Migrate the source code.
- Migrate GitHub Issues, labels, and Projects.
2. **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 changing `DONE_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 to `main`.
- `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 to `PLAN.md`.
3. **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.
4. **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`).
5. **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.