0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

如何本地運行和測試Github Actions?

冬至子 ? 來源:dejavudwh ? 作者:dejavudwh ? 2023-08-02 16:44 ? 次閱讀

前言
一般來說,使用 Github Actions 都需要在 Repo 里完成相應(yīng)的 event 才能夠觸發(fā)(比如push/pull_request等),然后在 Github 提供的服務(wù)器(容器)中運行。這樣有兩個缺點:

每次都需要在 Repo 完成相應(yīng)的 evenet,操作較為費時。
一個 event 可能會觸發(fā)多個 Action,并且在 Github 的服務(wù)器上運行時需要排隊,運行較為耗時。
所以,本文介紹如何在本地運行 Github Actions 來解決上述兩個問題,主要有以下兩個依賴:

Docker Desktop on Windows(Backend 是 WSL)
act

依賴安裝

Docker Desktop on Windows

安裝 Docker Desktop on Windows 前需要先安裝 WSL,安裝 WSL 的操作可以參考官方文檔

安裝 Docker Desktop on Windows,

進入 Docker Desktop on Windows 時可能會一直停留在 starting the docker engine 界面,可以考慮以下解決方法:

重啟 Docker 服務(wù)
net stop com.docker.service

net start com.docker.service

先點擊右上角登錄 Docker 賬號
act
act 是在本地運行 Github Actions 的工具,它依賴于 Docker。安裝可以參考 nektos/act: Run your GitHub Actions locally ,或者直接在這個倉庫的 release 當中下載,只有一個 Windows 可執(zhí)行文件(exe)。

本地運行 Github Actions
act 使用說明

Command structure:

act [] [options]
If no event name passed, will default to "on: push"
If actions handles only one event it will be used as default instead of "on: push"

List all actions for all events:

act -l

List the actions for a specific event:

act workflow_dispatch -l

List the actions for a specific job:

act -j test -l

Run the default (push) event:

act

Run a specific event:

act pull_request

Run a specific job:

act -j test

Collect artifacts to the /tmp/artifacts folder:

act --artifact-server-path /tmp/artifacts

Run a job in a specific workflow (useful if you have duplicate job names)

act -j lint -W .github/workflows/checks.yml

Run in dry-run mode:

act -n

Enable verbose-logging (can be used with any of the above commands)

act -v
示例:RT-Thread 的 Github Actions
進入 RT-Thread 源代碼目錄(只要進入第一層即可,act 會自動搜索 .github/workflow 目錄)
使用act -l?查看當前目錄下的 Action

1.jpg

可以看到有重名(Job ID)的 Action,所以需要指定要運行的 Action(act -j test -W ..githubworkflowsaction_tools.yml?)
如果運行時拉不下鏡像可以修改一下 daemon.json 中的鏡像源

"registry-mirrors": [
"https://registry.docker-cn.com",
"http://hub-mirror.c.163.com",
"https://docker.mirrors.ustc.edu.cn"
]

運行結(jié)果如下:

1.jpg

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 觸發(fā)器
    +關(guān)注

    關(guān)注

    14

    文章

    2000

    瀏覽量

    61158
  • RT-Thread
    +關(guān)注

    關(guān)注

    31

    文章

    1289

    瀏覽量

    40135
收藏 人收藏

    評論

    相關(guān)推薦

    #PikaScript 進階-Github自動測試-Github Actions CI 3.1

    嵌入式
    lyon1998
    發(fā)布于 :2022年01月18日 11:40:54

    Github發(fā)布史上最大更新

    了。以前我們用Github基本上只有幾個動作:上傳、搜索、下載,如果我們需要測試Github上面一個項目,我們必須下載到本地運行。很多情況一
    發(fā)表于 10-17 10:03

    【觸覺智能 Purple Pi開發(fā)板試用】 GitHub Actions 在線編譯 uboot by jf_84491108

    https://github.com/wireless-tag-com/uboot-ssd20x提供了本地編譯Purple Pi R1 uboot的教程。但本地編譯需要一臺安裝了Linux或在虛擬機
    發(fā)表于 11-01 19:48

    【觸覺智能 Purple Pi開發(fā)板試用】 GitHub Actions 在線編譯 Buildroot by jf_84491108

    https://github.com/industio/PurPle-Pi-R1提供了本地編譯Purple Pi R1 Buildroot的教程。但本地編譯需要一臺安裝了Linux或在虛擬機中安裝
    發(fā)表于 11-01 22:17

    【觸覺智能 Purple Pi開發(fā)板試用】 GitHub Actions 在線編譯 qmsd by jf_84491108

    https://github.com/wireless-tag-com/8ms-sigmastar提供了本地編譯Purple Pi R1 qmsd的教程。但本地編譯需要一臺安裝了Linux或在虛擬機
    發(fā)表于 11-02 21:25

    【觸覺智能 Purple Pi開發(fā)板試用】 GitHub Actions 在線編譯 OpenWrt 失敗 by jf_84491108

    時往往因網(wǎng)絡(luò)原因?qū)е乱蕾噹彀惭b不完整,需要更換安裝源等,但即使換源安裝完依賴庫,在編譯過程中可能還會遇到各種由換源安裝導(dǎo)致的稀奇古怪的bug,費時費力。而利用GitHub Actions 在線編譯則
    發(fā)表于 11-02 22:09

    嘗試使用GitHub Actions在線編譯瑞薩RZ/G2UL Instructions images

    省流:不行測試流程:(1)新建項目https://github.com/LV36/RZ-G2UL/(2)新建文件.github/workflows/RZ-G2UL-images.yml,文本框中輸入
    發(fā)表于 11-21 10:44

    本地測試環(huán)境搭建

    本文主要介紹了本地測試環(huán)境搭建搭建一個本地測試環(huán)境無疑是個明智的選擇,再結(jié)合GitHub、Jenkins、Docker等工具,進行持續(xù)集成、
    的頭像 發(fā)表于 01-31 16:01 ?2874次閱讀
    <b class='flag-5'>本地</b><b class='flag-5'>測試</b>環(huán)境搭建

    GitHub宣布開放無限私有存儲庫以及限時訪問GitHub Actions

    GitHub 宣布,即日起,所有用戶都可以免費使用該平臺的核心功能。無論是個人免費賬戶、還是商業(yè)項目團隊,都可訪問 GitHub 的無限私有存儲庫、以及每月 2000 分鐘的 GitHub A
    的頭像 發(fā)表于 04-15 09:36 ?3610次閱讀

    上傳本地項目代碼到github

    GitHub是一個面向開源及私有軟件項目的托管平臺,因為只支持git 作為唯一的版本庫格式進行托管,故名GitHub。本文主要講解如何將本地代碼上傳至Github
    的頭像 發(fā)表于 11-14 16:45 ?1072次閱讀
    上傳<b class='flag-5'>本地</b>項目代碼到<b class='flag-5'>github</b>

    RT-Thread中的Github Actions

    RT-Thread中一共有五個Github Action(rt-thread/.github/workflow) 分別是: RT-Thread BSP build check(.github
    的頭像 發(fā)表于 06-01 03:10 ?724次閱讀
    RT-Thread中的<b class='flag-5'>Github</b> <b class='flag-5'>Actions</b>

    如何使用pkgs-test工具進行本地調(diào)試?

    pkgs-test作為一個可以在github actions上面運行檢查軟件包編譯情況的工具,同時也可以在本地使用。
    的頭像 發(fā)表于 09-21 15:00 ?749次閱讀

    使用pkgs-test工具對軟件包進行qemu測試

    pkgs-test是一個可以在github actions上面檢查軟件包編譯情況的工具。除了檢查軟件包的編譯情況pkgs-test目前還添加了qemu運行測試。
    的頭像 發(fā)表于 09-25 16:19 ?766次閱讀

    php運行環(huán)境本地測試地址是

    PHP運行環(huán)境本地測試地址是指在本地計算機上搭建的用于測試運行PHP代碼的的環(huán)境地址。搭建該
    的頭像 發(fā)表于 12-04 15:25 ?768次閱讀

    Arm推出GitHub平臺AI工具,簡化開發(fā)者AI應(yīng)用開發(fā)部署流程

    軟件提供了無縫的開發(fā)體驗。 GitHub Actions、原生 GitHub 運行器和基于 Arm 平臺的 AI 框架相結(jié)合,幫助全球 2,000 萬開發(fā)者簡化 AI 應(yīng)用開發(fā)
    的頭像 發(fā)表于 10-31 18:51 ?2125次閱讀