- Menjelaskan secara rinci proses dan hasil memindahkan proyek pribadi serta situs web dari GitHub ke Codeberg
- Menggunakan fitur "migrate from GitHub" milik Forgejo untuk memindahkan repositori, issue, PR, wiki, dan rilis secara lengkap
- Menjalankan pengalihan tautan dan penanganan stub repositori GitHub dengan skrip otomatis untuk menandai perpindahan secara jelas
- Dalam migrasi CI/CD, memanfaatkan Forgejo Actions dari Codeberg dan menyusun workflow yang lebih ringan sesuai batasan lingkungan
- Situs web dipindahkan tanpa downtime dengan memakai git-pages dan Grebedoc, dan seluruh migrasi selesai dalam satu akhir pekan
Ringkasan migrasi
- Memindahkan situs yang di-host di GitHub Pages dan 45 repositori ke Codeberg
- Tidak selesai hanya dengan beberapa klik, dan memerlukan beberapa tahap pekerjaan manual
- Seluruh proses selesai selama akhir pekan dan berjalan tanpa kendala berarti
- Tujuannya adalah menunjukkan bahwa pengembang lain juga bisa berpindah dengan mudah
Tahap 1: Memindahkan repositori
- Codeberg berbasis Forgejo dan menyediakan fitur "migrate from GitHub"
- Di GitHub, dapat membuat Personal Access Token (PAT) agar metadata seperti issue ikut terbawa
- Karena rate limit API GitHub, mengimpor banyak repositori sekaligus bisa gagal
- Issue, PR, wiki, dan rilis berpindah dengan sempurna sehingga referensi ke GitHub tidak lagi diperlukan
Tahap 2: Pengalihan tautan
- Tautan GitHub di dalam repositori lokal diubah massal ke alamat Codeberg
- Menggunakan perintah
sed dan find untuk penggantian otomatis berbasis teks
- URL
git remote tiap repositori juga diubah ke Codeberg lalu di-push ke semua repositori
Tahap 3: Penanganan stub repositori GitHub
- Menambahkan README pemberitahuan perpindahan ke repositori GitHub, lalu mengubah deskripsi dan tautan homepage ke Codeberg
- Membuat skrip otomatis untuk menerapkannya ke banyak repositori sekaligus
- Mengarsipkan repositori dengan perintah
gh repo archive
Tahap 4: Memindahkan CI/CD
- Dokumentasi CI Codeberg menekankan prinsip meminimalkan konsumsi energi
- Karena itu, hanya proyek yang benar-benar memerlukan CI saja yang dipertahankan, seperti situs web dan build dokumentasi
- Codeberg menyediakan dua jenis CI: Woodpecker dan Forgejo Actions
- Dipilih Forgejo Actions, yang mirip dengan GitHub Actions
- Perbedaan utama
- Sebagian besar Actions tetap dapat berjalan
- Hanya tersedia runner Linux, tanpa macOS dan Windows
- Perangkat lunak yang terpasang lebih sedikit dan sumber daya lebih terbatas
- Dengan lazy runners, beban bisa didistribusikan dan eksekusi menjadi lebih ramah lingkungan
- Untuk meningkatkan performa CI, sempat memakai image Docker dengan LaTeX prainstal, tetapi kembali ke image Ubuntu bawaan karena masalah versi
Tahap 5: Hosting ulang situs web
- Ingin memindahkan situs yang berjalan di GitHub Pages ke Codeberg Pages, tetapi fitur tersebut sedang dalam mode pemeliharaan
- Pembaruan tertunda karena masalah kompleksitas dan performa
- Sebagai alternatif, ditemukan dan digunakan git-pages dan Grebedoc
- Mendukung unggah sebelum perubahan DNS, sehingga perpindahan tanpa downtime dimungkinkan
- Mendukung redirect sisi server dan header kustom
- Migrasi selesai sambil tetap mempertahankan tautan lama (
eldred.fr/fortISSimO)
- Codeberg berencana melakukan migrasi bertahap ke git-pages di masa mendatang
- Kepuasan terhadap layanan ini lebih tinggi daripada GitHub Pages, sehingga ikut mendukung Patreon pengembang git-pages
Waktu yang dibutuhkan
- Pemindahan repositori (tahap 1–3): setengah hari
- Pemindahan CI (tahap 4): setengah hari
- Pemindahan situs web (tahap 5): beberapa hari, termasuk membereskan utang teknis
- Secara keseluruhan selesai dalam akhir pekan, dan lebih sederhana dari perkiraan
Setelah migrasi
- Tidak ada masalah fungsi pada situs web, hanya branch master di GitHub yang diperkecil
- Permalink masih tetap berfungsi
- Penghapusan repositori GitHub masih ditunda karena tidak adanya redirect
- Akun GitHub tetap dipertahankan untuk berkontribusi ke proyek lain
- Pindah ke Codeberg mungkin mengurangi jumlah kontributor, tetapi beberapa pengguna sudah membuat akun Codeberg dan terus berkontribusi
Ucapan terima kasih
- Catherine ‘whitequark’ : mengelola git-pages dan Grebedoc
- Tim SERVFAIL network: penyedia DNS
- Para kontributor Codeberg dan Forgejo: menyediakan fondasi untuk migrasi ini
Belum ada komentar.