Skip to content

Zeroplex 生活隨筆

軟體開發、伺服器和生活瑣事

小 縮小字型大小。 中 重設字型大小。 大 放大字型大小。

標籤: 資訊學習

為 Gitlab 加上 CI runner 做自動化測試

Posted on 2017 年 3 月 7 日2021 年 3 月 12 日 By 日落 在〈為 Gitlab 加上 CI runner 做自動化測試〉中尚無留言

gitlab-ci-runner 可以裝在 local 也可以跑在 docker container,我自己是安裝在 docker container:

docker run -d --name gitlab-runner --restart always 
  -v /srv/gitlab-runner/config:/etc/gitlab-runner 
  -v /var/run/docker.sock:/var/run/docker.sock 
  gitlab/gitlab-runner:latest

上面步驟完成以後,可以先進入 Gitlab 的 Admin => Runner,這邊會顯示 runner access token:

在該頁面可以找到 token,如果要讓之前設定的 token 失效,可以先點選「Reset」換一個 acces token:

先把 access token 複製下來,接下來建立一個 runner 並連接到 Gitlab 上:

docker exec -it gitlab-runner gitlab-runner register

設定說明:

  • gitlab-ci coordinator URL:輸入欲使用 runner 的 Gitlab 網址
  • gitlab-ci token:就是你剛剛複製下來的 access token
  • gitlab-ci description:輸入 runner 的名稱,例如 runner-php56 或是 runner-php70。這個名稱會在 Gitlab 上面看到,建議填寫清楚的名稱以供辨識。
  • executor:我這邊要讓 runner 在 docker container 裡面跑,所以選擇「docker」
  • Docker image:在 docker container 執行時,要使用哪個 image 當作 base。我自己懶的自己 built,用的是「edbizarro/gitlab-ci-pipeline-php」
  • gitlab-ci tags for this runner:這邊會請你輸入幾個關鍵字,假設在 project 設定中,出現這幾個關鍵字,則 Gitlab 會自動把符合的 executor on 起來跑。我自己會設定「docker」、「phptest」等等

到這邊若沒看到什麼錯誤,在 Gitlab 的 runner 頁面重新整理後,則頁面最下方可以看到剛剛設定好的 gitlab-ci description (runner name):

這頁有看到的話,可以依樣畫胡驢,在需要使用到的專案 runner 設定頁面,使用這個 runner 來跑測試。


在 Gitlab 上將 runner 設定好,接下來只要在專案上加入「.gitlab.ci.yml」,當 git push 後 Gitlab 便會檔案中的設定自動把 executor on 起來跑,設定方法可以參考 Gitlab 提供的 gitlab-ci.yml 說明。

簡易的 PHP library (不包含任何 framework) project 的 .gitlab-ci.yml 大概長這樣:

image: edbizarro/gitlab-ci-pipeline-php:5.6


syntax-check:
    script:
        - "find . -name '*.php' -print0 | xargs -0 -n1 php -l"
    tags:
        - docker

unit-test:
    script:
        - composer install --prefer-dist --no-ansi --no-interaction --no-progress --no-scripts
        - ./vendor/bin/phpunit -v --coverage-text --colors=never --stderr
    tags:
        - docker

上面可以看到我要求 executor 一定要使用「edbizarro/gitlab-ci-pipeline-php:5.6」這個 image,不過由於 tasks 有特別設定 tags,所以這行也不是必要。

而這邊設定了二個 tasks 要求 executor 協助執行:「syntax-check」和「unit-test」。因此 executor 會先跑 syntax-check,確認沒有錯誤後,再去執行 unit-test。

完成後,只要 Gitlab 收到 commit 且就會依照 .gitlab-ci.yml 的設定下去跑。結果會自動顯示在「Pipeline」的列表當中:

Reference:

  • Install GitLab Runner – GitLab Documentation
  • Configuration of your jobs with .gitlab-ci.yml – GitLab Documentation
  • Build and test PHP applications with Gitlab CI
Tags:PHP, 資訊學習

Laravel 5.3 的 API routing

Posted on 2017 年 3 月 5 日2021 年 3 月 12 日 By 日落 在〈Laravel 5.3 的 API routing〉中尚無留言

弄了很久才搞清楚 5.3 版的 routing 是怎麼搞的,覺得作者把事情弄的更複雜了,也少了一些彈性。

Laravel 5.3 中,routes 已經不是放在 App/Http 底下了,將設定獨立出來放在根目錄:

johnroyer@box:~/devel/laravel53$ tree routes
routes
├── api.php
├── console.php
└── web.php

有個 API 專用 routing 看了當然開心,只是怎麼樣都是不出來 api.php 這邊的設定要怎樣才能起作用。

後來找了很久才發現 Route 功能,已經在 provider 階段把 web / api 的 routing rule 寫死,所以 API 的 routing 有固定的 prefix,在網址是上必須是「http://laravel.root/api」開頭,才會吃到 api.php 的設定。該項 rule 被寫在 RouteServiceProvider 中:

    protected function mapApiRoutes()
    {
        Route::group([
            'middleware' => 'api',
            'namespace' => $this->namespace,
            'prefix' => 'api',
        ], function ($router) {
            require base_path('routes/api.php');
        });
    }

Reference:

  • How to use API Routes in Laravel 5.3 – Stack Overflow
Tags:Laravel, PHP, 資訊學習

網路語音通訊軟體整理 round 2

Posted on 2017 年 2 月 15 日2021 年 3 月 12 日 By 日落 在〈網路語音通訊軟體整理 round 2〉中有 2 則留言

去年因為辦 conference 比較了一些常見的語音通訊服務,最近則是因為太常講電話講到電話費破表,所以來又找了一些服務來作比較,這次就單純比音質和穩定度吧。

Hangouts

  • 連線算是穩定,偶爾會延遲或是掉字,但不錯用
  • 音質不算特別好,但也不至於聽不出來對方講的內容
  • 聽說 Chrome 瀏覽器上支援的比較好,Firefox 好像會有點問題?
Skype
  • 連線狀況不穩,時好時壞。
  • 音質佳,還會自動過濾掉喇叭、手機的回音。
Viber
  • 連線蠻穩的,和 Hangouts 差不多,希望不是因為客戶少使品質比較好 >”<
  • 音質佳,和 skype 幾乎相同品質
  • 有時候播話對方會沒收到來電通知,不過發生次數不多
LINE
  • 嗯 … 我個人還是把他當作貼圖買賣軟體 Orz
  • 2017/08/01 補充:現在只有剛接通時會有一些音訊延遲,之後語音還蠻順的,我覺得可以當作一對一的通訊工具了
Steam
  • 和前篇沒特別差別
  • 個人除非連線遊戲有特別需要,不然還是都會用 skype 和 viber 作為語音通訊平台
Slack
  • 連線品質不算差
  • 音質略低,但是比 Facebook Messanger 好多了。會吃到環境音,通話前建議帶耳機或是找個安靜的地方
Facebook Messanger
  • 連線品質佳,很少遇到斷斷續續的問題
  • 音質差,比一般電話的音質還要差 XD

Telegram

  • 連線品質不差 (連 2017/04 月底台灣海纜斷掉都沒啥影響)
  • 音質佳,跟 viber 有拼。但有時候會聽到自己的 echo,機會不大就是了
  • 補充:2017/04 月底對外的海纜斷掉,但對語音通訊並沒有明顯的影響!

目前有測試的主要只有這幾項,歡迎各路高手分享經驗~
Tags:分享, 資訊學習

phpBB 3.2 的 nginx 的 location 設定

Posted on 2017 年 2 月 2 日2021 年 3 月 12 日 By 日落 在〈phpBB 3.2 的 nginx 的 location 設定〉中尚無留言

先說一下 phpBB 安裝工具吧,安裝程式的路徑不是在跟目錄而是在「/install」,entry point 是 app.php,而 app.php 又有自己的 route。

如果只是這樣設定的話,route 會失敗:

location / {
    try_files  $uri /index.php?$uri$args;
}

所以另外對「/install」增加了一個 rule 才能正常執行安裝工具:

location /install {
    try_files  $uri /app.php?$uri$args;
}


安裝完成後,論壇系統的有二個 entry point,所以不能只單設定 index.php,還有 app.php,因此 nginx 的設定要改成下面這樣:

location / {
    try_files  $uri /app.php?$uri$args /index.php?$uri$args;  # 注意順序
}

當然,安裝完成以後就可以把「/install」的設定砍掉了。

Tags:Nginx, PHP, 資訊學習

Synology 的套件庫及管理工具 ipkg

Posted on 2016 年 10 月 20 日2021 年 3 月 12 日 By 日落 在〈Synology 的套件庫及管理工具 ipkg〉中尚無留言

一直以為 Synology 的 DSM 上面,只有預設的套件管理工具和社群套件可以安裝使用,但這實在不夠力。

昨天因為 S.M.A.R.T. 檢測失敗 (但也沒寫問題在哪裡),所以只好找 badblocks 來手動測試。badblocks 一次市要跑數個小時的,若因為網路不穩斷線會導致 process 被中斷,只能重跑,至少要裝個 session / screen manager 來支援 (我習慣用 GNU screen)。

後來搜尋後找到 ipkg 這項套件管理工具,安裝完畢以後可以用類似 ubuntu aptitude 的操作方式來安裝套件。

常用工具都已經有包好可以直接下載使用,像是 htop、screen 等等,可以透過 ipkg search / install 來使用。binary 預設放在 /opt/bin 底下,再調整一下 PATH 即可直接呼叫。

Ref:

  • https://forum.synology.com/enu/viewtopic.php?t=94291
  • http://www.vspecialist.co.uk/2014/09/how-to-install-ipkg-on-a-synology-nas/
  • http://blog.fat-nerds.com/dot-nerd/install-ipkg-on-synology-in-chines/
Tags:資訊學習

文章分頁

上一頁 1 ... 7 8 9 ... 53 下一頁

其他

關於我  (About me)

  文章 RSS Feed

  留言 RSS Feed

Apache AWS Bash C/C++ Docker FreeBSD GCP Git Google Java JavaScript Laravel Linux Microsoft MSSQL MySQL Nginx PHP PHPUnit PostgreSQL Python Qt Ubuntu Unix Vim Web Windows WordPress XD 作業系統 分享 好站推薦 專題 攝影 新奇搞笑 新聞 旅遊 生活雜記 程式設計 網路架站 網頁設計 資訊學習 資訊安全 遊戲 音樂


創用 CC 授權條款
本著作係採用創用 CC 姓名標示-相同方式分享 4.0 國際 授權條款授權.