Skip to content

Zeroplex 生活隨筆

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

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

年份: 2017 年

為 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, 資訊學習

Nginx + PHP + MySQL 的 windows 懶人包

Posted on 2017 年 2 月 24 日2021 年 3 月 12 日 By 日落 在〈Nginx + PHP + MySQL 的 windows 懶人包〉中尚無留言

以前都是 WAMP 懶人包,現在終於看到已 Nginx + php-fpm + MySQL 為主的懶人包了:WPN-XM:

WPN-XM 看起來已經有不少人在維護,新的 RC 版本也開始支援 PHP 7.x 了,看起來可以關注一下。

Tags:MySQL, Nginx, PHP, Windows, 分享

Garmin fenix 3 HR (反串) 開箱文

Posted on 2017 年 2 月 17 日2021 年 3 月 12 日 By 日落 在〈Garmin fenix 3 HR (反串) 開箱文〉中尚無留言
Garmin fenix 3 HR (反串) 開箱文

買了隻 Garmin 的 fenix 3 HR 智慧手錶,網路上已經有不少精美的開箱文,所以按照慣例,我就來記錄一下開箱以後一些個人覺得較不喜歡的地方。

矽膠腕帶

因為 3 HR 有心律感應器,所以錶背需要貼上皮膚上,所以長時間帶會覺得悶熱 (但或許是我不習慣的關係吧)

感應器校準

3 HR 第一次啟動有數個設定需要校準,例如時間、高度計。高度計使用 GPS 訊號做校準不說,但為何時間不能透過和手機連線來設定,只能手動設定或是使用 GPS 資料設定時間?
因此,第一次啟動你必須到室外收 GPS 才能完成所有的基礎設定。


手機通知同步

其實我沒有很想要在手錶上面看到通知訊息  XD
但留意到目前 3 HR 會跳出的通知,僅限主流通訊軟體,像是 Gmail、LINE 等,但 Telegram 的通知,我目前還沒有收到過,感覺頗微妙的。

補充:經朋友告知,預設的確只有常用的 app 通知,但是可以從 Garmin 手機的 app 中,新增需要轉播到手錶的 app 通知。

按鈕

3 HR 的按鈕按鍵重量不輕,因此按按鈕一定需要在按鈕的另一側用手指頂住以免造成皮膚拉扯不舒服,5 個按鈕中,其中的 4 個按鈕另一側均有另一個按鈕,可能會導致誤觸。因此操作時並沒有非常順手。

帳號整合問題

平常有在使用 RunKeeper 當作運動記錄的輔助,但是發現 RunKeeper 要連接智慧手錶時,需要先登入 Garmin 帳號取得授權。

Garmin 設計成可以使用第三方帳號登入

但是使用 RunKeeper 連到 Garmin 登入時,卻沒有使用第三方帳號登入的選項:

已寄信至客服,希望有個好的答覆。

如果你還沒看過別人的開箱文,個人推薦以下幾篇介紹:
  • 加載腕式心率監測 運動記錄功能再升級 Garmin FENIX 3 HR – Mobile01
  • 【評測】Garmin Fenix 3 HR 全能生活戶外運動錶 | 運動筆記 | tw.running.biji.co
Tags:分享, 生活雜記

網路語音通訊軟體整理 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:分享, 資訊學習

文章分頁

上一頁 1 ... 8 9 10 11 下一頁

其他

關於我  (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 國際 授權條款授權.