精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

使用Snapcraft構(gòu)建、測試并發(fā)布Snap軟件包

系統(tǒng) Linux
snapcraft 是一個正在為其在 Linux 中的地位而奮斗的包管理系統(tǒng),它為你重新設(shè)想了分發(fā)軟件的方式。這套新的跨發(fā)行版的工具可以用來幫助你構(gòu)建和發(fā)布 snap 軟件包。接下來我們將會講述怎么使用 CircleCI 2.0 來加速這個過程以及一些在這個過程中的可能遇到的問題。

[[200622]]

snapcraft 是一個正在為其在 Linux 中的地位而奮斗的包管理系統(tǒng),它為你重新設(shè)想了分發(fā)軟件的方式。這套新的跨發(fā)行版的工具可以用來幫助你構(gòu)建和發(fā)布 snap 軟件包。接下來我們將會講述怎么使用 CircleCI 2.0 來加速這個過程以及一些在這個過程中的可能遇到的問題。

snap 軟件包是什么?snapcraft 又是什么?

snap 是用于 Linux 發(fā)行版的軟件包,它們在設(shè)計的時候吸取了像 Android 這樣的移動平臺和物聯(lián)網(wǎng)設(shè)備上分發(fā)軟件的經(jīng)驗教訓(xùn)。snapcraft 這個名字涵蓋了 snap 和用來構(gòu)建它們的命令行工具、這個 snapcraft.io 網(wǎng)站,以及在這些技術(shù)的支撐下構(gòu)建的幾乎整個生態(tài)系統(tǒng)。

snap 軟件包被設(shè)計成用來隔離并封裝整個應(yīng)用程序。這些概念使得 snapcraft 提高軟件安全性、穩(wěn)定性和可移植性的目標(biāo)得以實現(xiàn),其中可移植性允許單個 snap 軟件包不僅可以在 Ubuntu 的多個版本中安裝,而且也可以在 Debian、Fedora 和 Arch 等發(fā)行版中安裝。snapcraft 網(wǎng)站對其的描述如下:

為每個 Linux 桌面、服務(wù)器、云端或設(shè)備打包任何應(yīng)用程序,并且直接交付更新。

在 CircleCI 2.0 上構(gòu)建 snap 軟件包

在 CircleCI 上使用 CircleCI 2.0 語法 來構(gòu)建 snap 和在本地機(jī)器上基本相同。在本文中,我們將會講解一個示例配置文件。如果您對 CircleCI 還不熟悉,或者想了解更多有關(guān) 2.0 的入門知識,您可以從 這里 開始。

基礎(chǔ)配置

  1. version: 2 
  2. jobs: 
  3.   build: 
  4.     machine: true 
  5.     working_directory: ~/project 
  6.     steps: 
  7.       - checkout 
  8.       - run: 
  9.           command: | 
  10.             sudo apt update && sudo apt install -y snapd 
  11.             sudo snap install snapcraft --edge --classic 
  12.             /snap/bin/snapcraft 

這個例子使用了 machine 執(zhí)行器來安裝用于管理運行 snap 的可執(zhí)行程序 snapd 和制作 snap 的 snapcraft 工具。

由于構(gòu)建過程需要使用比較新的內(nèi)核,所以我們使用了 machine 執(zhí)行器而沒有用 docker 執(zhí)行器。在這里,Linux v4.4 已經(jīng)足夠滿足我們的需求了。

用戶空間的依賴關(guān)系

上面的例子使用了 machine 執(zhí)行器,它實際上是一個內(nèi)核為 Linux v4.4 的 Ubuntu 14.04 (Trusty) 虛擬機(jī)。如果 Trusty 倉庫可以滿足你的 project/snap 構(gòu)建依賴,那就沒問題。如果你的構(gòu)建依賴需要其他版本,比如 Ubuntu 16.04 (Xenial),我們?nèi)匀豢梢栽?machine 執(zhí)行器中使用 Docker 來構(gòu)建我們的 snap 軟件包 。

  1. version: 2 
  2. jobs: 
  3.   build: 
  4.     machine: true 
  5.     working_directory: ~/project 
  6.     steps: 
  7.       - checkout 
  8.       - run: 
  9.           command: | 
  10.             sudo apt update && sudo apt install -y snapd 
  11.             docker run -v $(pwd):$(pwd) -t ubuntu:xenial sh -c "apt update -qq && apt install snapcraft -y && cd $(pwd) && snapcraft" 

這個例子中,我們再次在 machine 執(zhí)行器的虛擬機(jī)中安裝了 snapd,但是我們決定將 snapcraft 安裝在 Ubuntu Xenial 鏡像構(gòu)建的 Docker 容器中,并使用它來構(gòu)建我們的 snap。這樣,在 snapcraft 運行的過程中就可以使用在 Ubuntu 16.04 中可用的所有 apt 包。

測試

在我們的博客、文檔以及互聯(lián)網(wǎng)上已經(jīng)有很多講述如何對軟件代碼進(jìn)行單元測試的內(nèi)容。搜索你的語言或者框架和單元測試或者 CI 可以找到大量相關(guān)的信息。在 CircleCI 上構(gòu)建 snap 軟件包,我們最終會得到一個 .snap 的文件,這意味著除了創(chuàng)造它的代碼外我們還可以對它進(jìn)行測試。

工作流

假設(shè)我們構(gòu)建的 snap 軟件包是一個 webapp,我們可以通過測試套件來確保構(gòu)建的 snap 可以正確的安裝和運行,我們也可以試著安裝它或者使用 Selenium 來測試頁面加載、登錄等功能正常工作。但是這里有一個問題,由于 snap 是被設(shè)計成可以在多個 Linux 發(fā)行版上運行,這就需要我們的測試套件可以在 Ubuntu 16.04、Fedora 25 和 Debian 9 等發(fā)行版中可以正常運行。這個問題我們可以通過 CircleCI 2.0 的工作流來有效地解決。

工作流是在最近的 CircleCI 2.0 測試版中加入的,它允許我們通過特定的邏輯流程來運行離散的任務(wù)。這樣,使用單個任務(wù)構(gòu)建完 snap 后,我們就可以開始并行的運行 snap 的發(fā)行版測試任務(wù),每個任務(wù)對應(yīng)一個不同的發(fā)行版的 Docker 鏡像 (或者在將來,還會有其他可用的執(zhí)行器)。

這里有一個簡單的例子:

  1. workflows: 
  2.   version: 2 
  3.   build-test-and-deploy: 
  4.     jobs: 
  5.       - build 
  6.       - acceptance_test_xenial: 
  7.           requires: 
  8.             - build 
  9.       - acceptance_test_fedora_25: 
  10.           requires: 
  11.             - build 
  12.       - acceptance_test_arch: 
  13.           requires: 
  14.             - build 
  15.       - publish: 
  16.           requires: 
  17.             - acceptance_test_xenial 
  18.             - acceptance_test_fedora_25 
  19.             - acceptance_test_arch 

在這個例子中首先構(gòu)建了 snap,然后在四個不同的發(fā)行版上運行驗收測試。如果所有的發(fā)行版都通過測試了,那么我們就可以運行發(fā)布 job,以便在將其推送到 snap 商店之前完成剩余的 snap 任務(wù)。

留著 .snap 包

為了測試我們在工作流示例中使用的 .snap 軟件包,我們需要一種在構(gòu)建的時候持久保存 snap 的方法。在這里我將提供兩種方法:

  1. artifact —— 在運行 build 任務(wù)的時候我們可以將 snaps 保存為一個 CircleCI 的 artifact(LCTT 譯注:artifact 是 snapcraft.yaml 中的一個 Plugin-specific 關(guān)鍵字),然后在接下來的任務(wù)中檢索它。CircleCI 工作流有自己處理共享 artifact 的方式,相關(guān)信息可以在 這里 找到。
  2. snap 商店通道 —— 當(dāng)發(fā)布 snap 軟件包到 snap 商店時,有多種通道可供我們選擇。將 snap 的主分支發(fā)布到 edge 通道以供內(nèi)部或者用戶測試已經(jīng)成為一種常見做法。我們可以在 build 任務(wù)中完成這些工作,然后接下來的的任務(wù)就可以從 edge 通道來安裝構(gòu)建好的 snap 軟件包。

***種方法速度更快,并且它還可以在 snap 軟包上傳到 snap 商店供用戶甚至是測試用戶使用之前對 snap 進(jìn)行驗收測試。第二種方法的好處是我們可以從 snap 商店安裝 snap,這也是 CI 運行期間的測試項之一。

snap 商店的身份驗證

snapcraft-config-generator.py 腳本可以生成商店證書并將其保存到 .snapcraft/snapcraft.cfg 中(注意:在運行公共腳本之前一定要對其進(jìn)行檢查)。如果覺得在你倉庫中使用明文來保存這個文件不安全,你可以用 base64 編碼該文件,并將其存儲為一個私有環(huán)境變量,或者你也可以對文件 進(jìn)行加密,并將密鑰存儲在一個私有環(huán)境變量中。

下面是一個示例,將商店證書放在一個加密的文件中,并在 deploy 環(huán)節(jié)中使用它將 snap 發(fā)布到 snap 商店中。

  1. - deploy: 
  2.     name: Push to Snap Store 
  3.     command: | 
  4.       openssl aes-256-cbc -d -in .snapcraft/snapcraft.encrypted -out .snapcraft/snapcraft.cfg -k $KEY 
  5.       /snap/bin/snapcraft push *.snap 

除了 deploy 任務(wù)之外,工作流示例同之前的一樣, deploy 任務(wù)只有當(dāng)驗收測試任務(wù)通過時才會運行。

更多的信息

  • Alan Pope 在 論壇中發(fā)的帖子:“popey” 是 Canonical 的員工,他在 snapcraft 的論壇上寫了這篇文章,并啟發(fā)作者寫了這篇博文。
  • snapcraft 網(wǎng)站: snapcraft 官方網(wǎng)站。
  • snapcraft 的 CircleCI Bug 報告:在 Launchpad 上有一個開放的 bug 報告頁面,用來改善 CircleCI 對 snapcraft 的支持。同時這將使這個過程變得更簡單并且更“正式”。期待您的支持。
  • 怎么使用 CircleCI 構(gòu)建 Nextcloud 的 snap:這里有一篇題為 “復(fù)雜應(yīng)用的持續(xù)驗收測試” 的博文,它同時也影響了這篇博文。

這篇客座文章的作者是 Ricardo Feliciano —— CircleCi 的開發(fā)者傳道士。如果您也有興趣投稿,請聯(lián)系 ubuntu-iot@canonical.com。原始文章可以從 這里 找到。 

責(zé)任編輯:龐桂玉 來源: Linux中國
相關(guān)推薦

2022-05-09 10:51:26

Snap軟件包Ubuntu

2022-11-17 15:10:41

Ubuntu

2022-11-07 16:53:53

PipPython軟件包

2022-08-07 12:17:21

Snap磁盤

2011-02-21 12:44:00

Qcheck局域網(wǎng)限速

2012-10-29 11:31:43

IBMdw

2012-10-24 14:54:15

IBMdw

2010-03-03 09:43:34

Linux軟件包

2021-04-20 22:27:22

Python軟件包GitHub

2019-11-26 17:29:15

Adobe

2018-06-22 10:05:04

Arch LinuxDEB軟件包

2009-12-28 12:25:44

2024-01-26 12:35:25

JavaScript項目軟件包

2011-04-30 16:56:45

Windows PhoiOS

2017-09-14 14:30:47

LinuxSublime Tex編輯器

2011-07-07 17:23:50

開發(fā)制作軟件

2018-06-19 10:06:16

Linux軟件測試Nix包管理器

2022-12-02 10:13:49

Bodhi Linu和軟件包

2010-02-05 14:46:20

Ubuntu軟件包

2023-11-12 22:03:25

CanonicalLinuxSnap
點贊
收藏

51CTO技術(shù)棧公眾號

99精品视频在线播放免费| 伊人网伊人影院| 韩国日本一区| 91免费版在线看| 成人黄色免费在线观看| 日本三级黄色大片| 凹凸成人精品亚洲精品密奴| 欧美一区二区三区视频| 丰满少妇被猛烈进入高清播放| 四虎久久免费| 97精品久久久久中文字幕| 国产日韩在线一区| 国产在线观看黄色| 一区二区三区中文| 亚洲一区二区黄| 亚洲精品第二页| 四虎视频在线精品免费网址| 午夜成人免费电影| 91香蕉视频网址| 欧美捆绑视频| 成av人片一区二区| 成人有码在线播放| 日本黄色中文字幕| 亚洲精品123区| 久久电影一区二区| 亚洲色图第四色| 日韩三区视频| 亚洲成色777777女色窝| 视频免费1区二区三区| 成人片免费看| 欧美日韩激情小视频| 真人做人试看60分钟免费| 福利小视频在线观看| 97精品久久久午夜一区二区三区| 99国产视频| 国产精品久久久久久久免费看| 老**午夜毛片一区二区三区| 91成人福利在线| 国产成年人免费视频| 国产综合自拍| 欧美成人免费大片| 欧美肥妇bbwbbw| 欧美大人香蕉在线| 一区二区亚洲精品国产| 亚洲精品乱码久久| 国产精品高潮呻吟久久久久| 日韩欧美三级在线| 天天久久综合网| 久久av偷拍| 日韩欧美国产一区二区三区| 亚洲色图欧美自拍| 日韩欧美另类中文字幕| 日韩精品一区二区三区四区视频| 国产九九九视频| 精品国产欧美| 日韩欧美卡一卡二| 韩国三级丰满少妇高潮| 6080成人| 日韩av最新在线观看| 久久人人妻人人人人妻性色av| 国产精品对白| 亚洲免费av网址| 免费网站在线高清观看| 日韩毛片视频| 久久久www成人免费精品张筱雨| 国产一区二区三区视频播放| 五月开心六月丁香综合色啪| 久久影视电视剧免费网站| 日韩高清dvd碟片| 欧美三级免费| 欧美夜福利tv在线| 免费看av在线| 国产九色精品成人porny| yy111111少妇影院日韩夜片| 天堂网在线播放| 久久久久国产精品麻豆| 亚洲欧洲日韩综合二区| caopeng在线| 亚洲va欧美va人人爽| 日韩在线视频在线观看| 国产精品久久乐| 日韩亚洲欧美一区| 亚洲熟妇一区二区三区| 久久不见久久见国语| 久久精品久久久久久| 国产亚洲成人av| 老牛国产精品一区的观看方式| 国产在线久久久| 亚洲美女福利视频| 国产亚洲一本大道中文在线| 亚洲最大色综合成人av| 久草在线视频资源| 色老汉av一区二区三区| 精品国产午夜福利在线观看| 日韩欧美天堂| 欧美成人精品在线观看| 亚洲不卡视频在线观看| 国产一区二区h| 欧美成熟毛茸茸复古| 精品176二区| 日韩欧美有码在线| 韩国三级与黑人| 自拍偷拍一区| 欧美激情视频在线观看| 99久久久无码国产精品免费蜜柚 | 国产精品九九久久久久久久| 99热这里是精品| 国产无人区一区二区三区| 一本色道久久88亚洲精品综合| 成人欧美大片| 精品99一区二区三区| 无码人中文字幕| 亚洲综合三区| 99热在线播放| 麻豆影视国产在线观看| 欧美性猛交xxx| 91porn在线| 亚洲91视频| 国产精品成人国产乱一区| 欧洲精品久久一区二区| 亚洲日穴在线视频| 天天色综合天天色| 日韩激情啪啪| 国产69精品99久久久久久宅男| 91久久久久久久久久久久| 久久亚洲综合av| 人妻少妇精品无码专区二区| 国产一区二区三区精品在线观看| 中文日韩电影网站| 久久久久在线视频| 91蜜桃在线观看| 水蜜桃色314在线观看| 日韩一二三区| 久久躁狠狠躁夜夜爽| 影音先锋国产资源| 中文字幕免费一区| 国产三级日本三级在线播放| 亚洲品质自拍| 欧美最猛性xxxx| 亚洲人妻一区二区三区| 午夜电影网一区| 屁屁影院国产第一页| 国产一区观看| 国产精品久久九九| av中文在线资源| 亚洲国产97在线精品一区| 久久久久免费看| 福利91精品一区二区三区| 国产精品久久久影院| 国产精品日本一区二区不卡视频 | 国产原创一区| 在线精品国产欧美| 夜夜狠狠擅视频| 中文字幕一区二区三区不卡在线| 欧美成人三级在线播放| 午夜精品毛片| 96久久精品| 操喷在线视频| 亚洲美女www午夜| 亚洲综合成人av| 国产精品丝袜在线| 中文字幕精品一区二区三区在线| 97精品视频| 91九色偷拍| hd国产人妖ts另类视频| 日韩av有码在线| 黄瓜视频在线免费观看| 国产精品每日更新| 一本之道在线视频| 亚洲国产婷婷| 日韩aⅴ视频一区二区三区| 国产极品嫩模在线观看91精品| 久久精彩免费视频| 成人1区2区3区| 色综合久久综合网97色综合| 中文字幕免费在线看线人动作大片| 麻豆精品蜜桃视频网站| 超碰97在线看| 尤物tv在线精品| 成人黄色av免费在线观看| 人人澡人人添人人爽一区二区| 亚洲护士老师的毛茸茸最新章节| 天堂网中文字幕| 综合欧美亚洲日本| 日本黄色免费观看| 免费视频一区二区| r级无码视频在线观看| 国产精品欧美三级在线观看| 成人精品视频在线| 999福利在线视频| x99av成人免费| 蜜桃视频污在线观看| 欧美午夜精品久久久久久超碰| 九九热最新地址| 久久免费的精品国产v∧| 女人高潮一级片| 亚洲永久在线| www.国产二区| 日韩欧美高清在线播放| 国产91免费视频| 99久久久国产精品免费调教网站| 久久99国产综合精品女同| 能在线看的av| 精品成人一区二区三区| 中文字幕人妻一区二区在线视频| 亚洲成人在线观看视频| 国产精品视频看看| 2021中文字幕一区亚洲| 亚洲av无码久久精品色欲| 男人操女人的视频在线观看欧美| 国产欧美日韩小视频| 午夜久久免费观看| 五月天国产一区| 综合伊思人在钱三区| 成人在线看片| 永久免费观看精品视频| 国产精品扒开腿爽爽爽视频| caoporn视频在线观看| 免费91在线视频| 一本一道波多野毛片中文在线| 精品日韩欧美一区二区| 国产乱码精品一区二区| 欧美视频中文一区二区三区在线观看| 精品无码人妻一区二区三| 亚洲欧美福利一区二区| 亚洲女人久久久| 国产日韩亚洲欧美综合| 国产精品815.cc红桃| 成人短视频下载| 成年人小视频在线观看| 国产精品中文字幕一区二区三区| 日韩爱爱小视频| 日本中文在线一区| www.欧美日本| 日韩二区三区四区| 波多野结衣天堂| 全国精品久久少妇| 欧美精品性生活| 毛片av中文字幕一区二区| 五月婷婷之综合激情| 麻豆精品在线视频| 中国黄色片免费看| 久久99精品久久久久久久久久久久| 亚洲少妇第一页| 麻豆精品一二三| 天堂av2020| 国产揄拍国内精品对白| 麻豆传媒在线看| 成人免费黄色大片| 一本加勒比波多野结衣| 91久色porny| 国产免费一区二区三区网站免费| 国产欧美日韩精品a在线观看| 色欲狠狠躁天天躁无码中文字幕| 国产肉丝袜一区二区| 精品视频第一页| 亚洲乱码日产精品bd| 极品颜值美女露脸啪啪| 亚洲成人高清在线| 日本中文字幕第一页| 欧美影院一区二区| 97超碰中文字幕| 精品久久一区二区| 亚洲欧美日韩精品永久在线| 亚洲人成电影在线播放| 生活片a∨在线观看| 美日韩精品免费观看视频| 丁香花在线高清完整版视频 | 韩国三级一区| 国产在线观看91精品一区| 136福利精品导航| 久久青青草原| 日韩精品第一区| 九一免费在线观看| 翔田千里一区二区| 中文字幕第17页| 不卡视频在线看| 娇妻被老王脔到高潮失禁视频| 亚洲欧洲成人精品av97| 日本熟妇一区二区| 欧美亚洲综合色| 亚洲精品字幕在线观看| 亚洲男人天堂古典| 国产鲁鲁视频在线观看特色| 性视频1819p久久| 精品国产欧美日韩一区二区三区| 97人人香蕉| 久久综合亚洲| 国产a级黄色大片| 首页亚洲欧美制服丝腿| a级大片免费看| 国产亚洲女人久久久久毛片| 真实国产乱子伦对白在线| 欧美性极品少妇精品网站| 国产精品自拍电影| 日韩精品免费在线| 国产欧美黑人| 国产精品99一区| 爱爱精品视频| 最新视频 - x88av| 丝袜美腿亚洲色图| 69xxx免费视频| 国产精品麻豆网站| 国产原创视频在线| 日韩美女一区二区三区| 东热在线免费视频| 97香蕉超级碰碰久久免费的优势| 国产精品18| 日韩美女一区| 国产精品久久久免费| 久久精品无码一区二区三区毛片| 久久精品视频一区二区| 亚洲国产综合久久| 日韩欧美精品三级| 欧美人xxx| 国产精品久久一区| 国产精品三级| 欧美深夜福利视频| 国产99精品视频| 东方av正在进入| 欧美日韩三级在线| 国产69久久| 日韩免费中文字幕| 亚洲成aⅴ人片久久青草影院| 国产中文字幕乱人伦在线观看| 美女视频黄频大全不卡视频在线播放| 亚洲专区区免费| 欧美日韩性视频| 免费观看黄色av| 欧美俄罗斯乱妇| 亚洲视频一起| 日本香蕉视频在线观看| 国产老肥熟一区二区三区| 永久免费看mv网站入口| 91精品久久久久久久99蜜桃| 亚洲成人影院麻豆| 国产精品视频白浆免费视频| 欧美日韩黑人| 免费涩涩18网站入口| 国产午夜精品一区二区三区视频 | 激情无码人妻又粗又大| 在线观看亚洲一区| 大片免费播放在线视频| 日韩av不卡电影| 国产欧美一区二区三区精品观看| 久久精品.com| 国产片一区二区| 中文字幕一区二区人妻痴汉电车| 丝袜情趣国产精品| 亚洲欧美专区| 成人国产一区二区三区| 成人性生交大片免费看中文网站| 五月天综合在线| 日韩精品在线视频观看| 深夜成人福利| 在线视频91| 国产精一品亚洲二区在线视频| 真实国产乱子伦对白在线| 亚洲精品在线观看视频| 麻豆mv在线观看| 欧美日韩精品免费观看视一区二区 | 亚洲天堂免费视频| 91成人抖音| 一区二区三区一级片| 国产成人亚洲精品狼色在线| 亚洲国产精品午夜在线观看| 亚洲情综合五月天| 日韩国产大片| www.成年人视频| 久久久一区二区三区| 这里只有久久精品视频| 久久精品成人欧美大片古装| 亚洲高清999| 国产成人黄色片| 国产精品成人网| 亚洲国产精品suv| 欧美最猛性xxxx| 66视频精品| 欧洲一级黄色片| 欧美系列在线观看| 男女羞羞视频在线观看| 欧美日韩在线精品一区二区三区| 精品一区二区三区视频| jizz国产免费| 日韩色av导航| 日本国产精品| 91精品999| 一本一本久久a久久精品综合麻豆| 亚洲免费视频一区二区三区| 国产区二精品视| 老司机一区二区| 日韩精品一卡二卡| 久久久91精品国产一区不卡| 亚洲aaa级| 超碰在线超碰在线| 一本到不卡免费一区二区| 2024最新电影在线免费观看| 日本精品一区二区三区不卡无字幕| 国产一区二区在线电影| 日韩电影在线观看一区二区|