iT邦幫忙

2024 iThome 鐵人賽

DAY 28
1
DevOps

就是工商,為什麼要使用付費版 GitLab?系列 第 28

Day 28:為你的 GitLab 產出更豐富的假資料

  • 分享至 

  • xImage
  •  

在 Day 26 我介紹了 GPT Data Generator 可以幫我們產出假資料,以便後續可以做 Load testing。

今天我們來玩另一個可以幫我們在 GitLab Server 上產出假資料的工具——GitLab Data Seeder

https://ithelp.ithome.com.tw/upload/images/20241012/20120986PRWfGhN7Cs.png

雖然 GPT Data Generator 可以快速的用前綴字 + 流水號的方式幫我們產出假資料。但如果你想要更多客製化、更像是真人在使用 GitLab 的假資料,那也許今天介紹的 GitLab Data Seeder

一樣,我們直接進操作步驟

  1. 首先準備好一個乾淨的 GitLab Server!(注意:不要拿你正式使用的 GitLab Server 來玩,會出事的喔!)
  2. ssh 登入你的主機
  3. 進入你安裝 GitLab 的路徑之下 cd /opt/gitlab/embedded/service/gitlab-rails
  4. 安裝必要的 resources 與套件
    # Install test resources
    . scripts/data_seeder/test_resources.sh
    
    # Globalize gems
    /opt/gitlab/embedded/bin/chpst -e /opt/gitlab/etc/gitlab-rails/env /opt/gitlab/embedded/bin/bundle exec ruby scripts/data_seeder/globalize_gems.rb
    
    # Install bundle
    /opt/gitlab/embedded/bin/chpst -e /opt/gitlab/etc/gitlab-rails/env /opt/gitlab/embedded/bin/bundle
    
  5. 執行 Data Seeder,等待它跑完。
    gitlab-rake "ee:gitlab:seed:data_seeder[beautiful_data.rb]"
    

https://ithelp.ithome.com.tw/upload/images/20241012/20120986OVyxAF4xIx.png

啪,就這樣結束了(誒誒誒誒!?)

是的喔,就這樣結束了,上面第 5 步做完,就可以前往你的 GitLab UI 查看產出的假資料了。但如果你真的去查看,你會發現 Data Seeder 只幫你建了一個名為 beautiful_data 的 Group,可是裡面一點內容都沒有。

其實這並非是 Data Seeder 這工具沒用處,而是我們上面選擇的 Seeder [beautiful_data.rb] 它本來就設定只做這麼一點事情。我們把這個 Seeder file 打開來看,會發現裡面只有如下短短的內容

https://ithelp.ithome.com.tw/upload/images/20241012/20120986O1WU8O7on4.png

因此實際上,它真正做的事情是幫我們建立一個 Group,然後為這個 Group 建立四個 Group Label

https://ithelp.ithome.com.tw/upload/images/20241012/20120986vhwczgsHB8.png

讓我們稍微修改它一下,再跑一次。我先將 beautiful_data.rb 複製一份,改檔名為 hero_data.rb,然後修改內容讓它再多建幾個 Group Label

## 複製檔案
cp /opt/gitlab/embedded/service/gitlab-rails/ee/db/seeds/data_seeder/beautiful_data.rb /opt/gitlab/embedded/service/gitlab-rails/ee/db/seeds/data_seeder/hero_data.rb

## 修改 hero_data.rb 加上更多的內容
class DataSeeder
  def seed
    create(:group_label, group: @group, title: 'priority::1', color: '#FF0000')
    create(:group_label, group: @group, title: 'priority::2', color: '#DD0000')
    create(:group_label, group: @group, title: 'priority::3', color: '#CC0000')
    create(:group_label, group: @group, title: 'priority::4', color: '#CC1111')
    create(:group_label, group: @group, title: 'hero::1', color: '#114FCC')
    create(:group_label, group: @group, title: 'hero::2', color: '#093B06')
    create(:group_label, group: @group, title: 'hero::3', color: '#9C1795')
    create(:group_label, group: @group, title: 'hero::4', color: '#636312')
  end
end

再次執行 Data Seeder,這次指定用我做好的 hero_data.rb

gitlab-rake "ee:gitlab:seed:data_seeder[hero_data.rb]"

噹噹!我得到了第二個 Group。
https://ithelp.ithome.com.tw/upload/images/20241012/20120986cWw0Tf3nXk.png

而且如我預期的,總共有 8 個 Group Label。
https://ithelp.ithome.com.tw/upload/images/20241012/20120986Cx3U9qhwBH.png

做到這裡,想必大家應該已經理解 GitLab Data Seeder 葫蘆裡在賣什麼藥了吧?

是的,就如其他程式語言常見的 Data Seeder,你可以透過寫 Code 的方式去定義你要產出什麼樣的假資料,然後執行程式即可將假資料按著你的規劃,塞進你的 GitLab。

因此你的 Seeder 撰寫的內容有多豐富,你就能塞進多豐富的假資料!所以剩下的就是苦工了,請詳閱原廠文件,撰寫自己所需的 Seeder file 吧。

https://ithelp.ithome.com.tw/upload/images/20241012/20120986feiWpfRBe6.png
圖片來源 - 吉卜力工作室 https://www.ghibli.jp/works/tanuki/#&gid=1&pid=18

參考資料


上一篇
Day 27:測試你的 GitLab 效能 Part3 - GitLab Browser Performance Tool
下一篇
Day 29:GitLab 的 Quality Department
系列文
就是工商,為什麼要使用付費版 GitLab?30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言