Haskell Stack 项目的 gitlab-CI:如何缓存构建的库?

2023-12-03

我正在使用以下内容.gitlab-ci.yml用于为使用创建的 Haskell Stack 项目设置 gitlab-CI 的文件stack new actividad3 --resolver=lts-14.6.

image: haskell:8.6.5

cache:
  paths:
    - .stack
    - .stack-work
    - target

test:
  stage: test
  script:
    - ghc --version
    - stack --system-ghc build
    - stack test

构建和测试该项目持续了近 5 分钟。大部分时间都花在构建 hspec 库上。有什么方法可以在管道运行之间缓存使用的库吗?

提前致谢。


将这些部件添加到您的.gitlab-ci.yml:

variables:
  STACK_ROOT: "${CI_PROJECT_DIR}/.stack-root"

cache:
  paths:
    - .stack-work/
    - .stack-root/

The $STACK_ROOTenv 变量更改其全局文件使用的文件夹堆栈。这是必需的,因为GitLab CI只能缓存项目文件夹下的文件,所以缓存$HOME/.stack, ~/.stack or /root/.stack行不通的。

网上的一些相关参考:

  • http://blog.braulio.me/2018/10/24/use-haskell-stack-gitlab-ci.html;
  • https://vadosware.io/post/zero-to-continuous-integrated-testing-a-haskell-project-with-gitlab/
  • https://dev.to/drbearhands/haskell-for-madmen-setup-4cj9
  • https://github.com/bitemyapp/haskell-continuous-integration/blob/master/.gitlab-ci.yml
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Haskell Stack 项目的 gitlab-CI:如何缓存构建的库? 的相关文章

  • 将数据类型设置为 Kind * -> * 这不是函子

    布伦特 约尔吉类型分类百科全书 https www haskell org haskellwiki Typeclassopedia给出以下练习 举一个类型的例子 gt 不能将其制成 的实例Functor 不使用undefined 请告诉我什
  • 无点镜头创建不进行类型检查

    在函数中test 我遍历一个列表 从它的成员生成镜头 然后打印一些数据 当我使用有针对性的呼叫风格时 这会起作用 当我使其成为无点时 它无法进行类型检查 为什么会出现这种情况 我该如何解决这个问题 在我看来 GHC 并没有保留排名较高的信息
  • Haskell scala 互操作性

    我是 Scala 初学者 来自面向对象范式 在了解 Scala 的函数式编程部分时 我被引导到 Haskell 纯函数式编程语言 探索 SO 问题答案 我发现 Java Haskell 具有互操作性 我很想知道 Scala Haskell
  • 如何在 Haskell 中向右或向左移动列表的 1 个元素?

    嗨 我一直在寻找答案 但找不到 假设我们有一个像这样的列表 1 10 4 5 3 我怎样才能将 5 向左移动 使这个列表变成 1 10 5 4 3 我尝试过了swapElementsAt通过找到该元素的索引 但它看起来非常不足 swapEl
  • Haskell 中的分类结构

    Hask通常被认为是一个范畴 其对象是类型 态射是函数 然而 我看到 Conor McBride pigworker 警告不要使用Hask多次 1 https stackoverflow com a 45905082 474311 2 ht
  • 被拒绝:将映像推送到 gitlab 注册表时,请求的资源访问被拒绝

    我正在尝试将图像推送到 gitlab 注册表 我已经做过很多次了 所以我想知道为什么会出现这个错误 我使用最新标签构建图像 Successfully tagged registry gitlab com mycompany rgpd api
  • 在推送到容器注册表之前如何对构建的映像运行测试?

    从 gitlab 文档中可以看出如何使用 kaniko 创建 docker 镜像 build stage build image name gcr io kaniko project executor debug entrypoint sc
  • gitlab 中的自动发行说明[关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 任何人都可以帮助我在 git lab 中自动生成发行说明 有什么方法可以执行此操作 请告诉我 谢谢 您可以使用 API 列出里程碑中的
  • Haskell 中的中缀运算符优先级

    对于以下 Haskell 表达式 返回 a gt gt f 应该读作 返回a gt gt f or 返回 a gt gt f 这里的相关规则是什么 规则始终是函数应用程序的优先级高于任何运算符 因此 return a gt gt f 被解析
  • Haskell 中的尾递归字符串分割

    我正在考虑分割字符串的问题s在一个字符处c 这表示为 break c s 其中 Haskell 库定义break c 足够接近 br br s h t if c h then s else let h t br t in h h t 假设我
  • 用于遇到 [...] 的 Haskell Parsec 解析器

    我正在尝试使用 Parsec 在 Haskell 中编写一个解析器 目前我有一个可以解析的程序 test x 1 2 3 end 执行此操作的代码如下 testParser do reserved test v lt identifier
  • 找不到模块“Yesod”

    我有以下代码 LANGUAGE TypeFamilies QuasiQuotes MultiParamTypeClasses TemplateHaskell OverloadedStrings module Simple where imp
  • : 中缀运算符在 Haskell 中的作用是什么?

    我正在阅读Haskell 简要介绍 http www haskell org tutorial index html 这不是那么温和 并且它反复使用 操作符而不直接解释它的作用 那么 它到底有什么作用呢 是 前置 运算符 x xs 返回一个
  • 这个对自身单位的列表理解是如何工作的?

    在 haskell IRC 频道中有人问 是否有一种简洁的方法来定义一个列表 其中第 n 个条目是之前所有条目的平方和 我认为这听起来像一个有趣的谜题 递归定义无限列表是我真正需要练习的事情之一 所以我启动了 GHCi 并开始尝试递归定义
  • 为什么 ZipList 不是 List 的默认应用实例

    我目前正在学习 Haskell 中的应用程序 如果我没记错的话 列表有两个不同的应用实例 List and ZipList 第二个被定义为包装列表值的新类型 这ZipList应用实例对我来说似乎更直观 这可能是一个愚蠢的问题 但有具体原因吗
  • 我该如何实现这个折叠功能呢?

    给出了两种数据类型 颜色 和 植物 data Color Red Pink White Blue Purple Green Yellow deriving Show Eq data Plant Leaf Blossom Color Stal
  • 如何在不声明新数据的情况下更改类型(String,Int)元组的 Ord 实例?

    我正在尝试对类型列表进行排序 String Int 默认情况下 它按字符串排序 然后按整数排序 如果字符串相等 我希望它是相反的 首先比较整数 然后如果相等则比较字符串 另外 我不想切换到 Int String 我找到了一种通过定义实例来实
  • 类型级别集结合律的证明

    我试图证明类型级函数Union https hackage haskell org package type level sets 0 8 5 0 docs Data Type Set html t Union是关联的 但我不确定应该如何完
  • 如何更换HXT中的节点?

    给定一个示例 xml 文件
  • gitlab-ci 的缓存虚拟环境

    我使用 Gitlab CI 脚本缓存了 Pip 包 所以这不是问题 现在我还想赶上Conda虚拟环境 因为它减少了设置环境的时间 我缓存了一个虚拟环境 不幸的是 最后需要很长时间才能缓存所有 venv 文件 我尝试仅缓存 CI PROJEC

随机推荐

  • 执行非查询过程不工作asp.net core

    我想执行一个存储过程 该过程返回三个值 电子邮件 姓名 公司 ID 并获取一个参数 公司 ID 但它不起作用 我创建了一个具有这些属性的类和一个返回数据的存储过程 由它显示DatabaseFacade error 我的代码是 List
  • 如何计算图像的对比度?

    假设我有一个opencv BGR image img 如何计算该图像的对比度 对比度的一种定义是均方根对比度 可以按下式计算 首先 改造BGR image img到灰度 img grey cv2 cvtColor img cv2 COLOR
  • 如何水平居中对齐 div 内的文本?

    这可能是个愚蠢的问题 但我不知道如何得到这个 编辑 我只想将文本水平居中而不是图像 并且图像必须保持文本的基线 div img style width 30px height 60px display inline src http pla
  • 如何在字符级别对句子进行one-hot编码?

    我想将一个句子转换为一个 one hot 向量数组 这些向量将是字母表的独热表示 它看起来像下面这样 hello h 7 e 4 l 11 o 14 会成为 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0
  • 如何将 SAX 与 Nokogiri 一起使用?

    我想解析一个非常大的文件 240Mb 并且必须使用 SAX 以避免将文件加载到内存中 我的 XML 看起来像
  • C# 泛型类型约束类可能不是

    我想排除某些类型在泛型类中使用 我知道如何进行约束以确保泛型类型是某种 接口 类型 但我似乎不知道如何exclude 多种 类型 例如 我想要一个泛型类来排除 int 和 uint 但不排除 DateTime 因此并非所有基元都可以被排除
  • 我的应用程序对 Google Play 商店中高于我的 targetSdkVersion 的设备是否可见?

    我已浏览以下链接 但它们没有为我的问题提供清晰明确的答案 这是我可以从答案中得出的结论 targetSdkVersion表示该应用程序针对目标版本进行了测试 并将在所有 Android 版本上运行minSdkVersion to targe
  • 如何编写一个每天午夜运行脚本的 cron?

    我听说 crontab 是一个不错的选择 但是我该如何编写该行以及将其放在服务器上的哪里 这是一个很好的教程关于什么是 crontab 以及如何在 Ubuntu 上使用它 您的 crontab 行将如下所示 00 00 ruby path
  • 指向由映射定义的子数组的指针

    我想定义一个指向子数组的指针 对于一个简单的范围 这很容易完成pointer gt array i j 但我不知道如何对这样的地图执行此操作k k1 k2 k3 如果我定义另一个数组 我可以使用类似的循环array2 array1 k j
  • MVC3 部分视图

    还在学习MVC3 EF 现在我正在连接到 MySql 但我相信这不相关 为简单起见 我决定为我的测试应用程序使用一个数据库 并且我添加了一个类别来区分数据 例如 我有新闻 事件 信息和页面类别 现在 当涉及到在主页的视图中列出内容时 我想列
  • 语句执行与同步方法执行交错

    我在理解同步关键字功能时遇到一些困难 根据java文档和其他教程 据说当使用synchronized关键字时 两个线程之间不可能在该方法的语句之间进行交错 但是 请看下面的代码 public class LockThread impleme
  • 如何删除第一个提交并使其直接子代成为根

    I have commit id1来自 git 提交 但这是第一个提交 因此它没有父提交 有一个commit id2谁是它的直系孩子 这是场景commit id1 gt commit id2 gt commit id3 有没有安全的删除方法
  • 如何防止嵌入式浏览器提示保存下载文件的位置?

    如何以编程方式单击下载按钮后下载文件 因此不需要知道下载文件的 url 下载文件后 会出现一个提示 询问您是否要保存该文件 按 是 后 另一个提示会询问您要将文件保存在哪里 因此 首先下载文件 可能下载到某处的缓冲区中 在初始下载后 出现提
  • 我怎样才能防止这种异常? java.sql.SQLException:无法转换为内部表示:

    我的代码在以下行 第 2 行 中抛出上述异常 final ArrayDescriptor tParamArrayDescriptor ArrayDescriptor createDescriptor MY SYSTEM T PARAM AR
  • Kotlin 多平台错误:共享:linkDebugFrameworkIosSimulatorArm64

    我设置了 KMP 项目 但无法启动 iOS 模拟器 安卓运行完美 当尝试运行 iOS 时 以下 gradle 任务失败 The Applications Xcode app Contents Developer Toolchains Xco
  • Apollo React - ApolloClient 设置中的“useMutation”?

    我有一个有趣的情况 我想使用 Apollo 本身发起刷新令牌请求 也称为调用突变 任何想法 如何实现这样的目标 export default new ApolloClient link ApolloLink from onError gra
  • 在Android上沿着路径制作动画图像? [复制]

    这个问题在这里已经有答案了 可能的重复 Android 沿路径移动位图 有没有一种方法可以像 iPhone 上的 CGPath 一样 在 Android 上沿着路径对 ImageView 的位置进行动画处理 我在网上搜索了这个问题的解决方案
  • 标题两侧都有水平线[重复]

    这个问题在这里已经有答案了 我正在研究一些CSS 其中设计要求页面标题 标题 以水平线居中 水平线在两侧垂直居中 此外 页面上有背景图像 因此标题的背景需要是透明的 我已将标题居中 并且可以使用伪类来创建该行 但我需要该线在穿过标题文本时消
  • ActionLink jQuery 参数

    我创建了一个 ASP NET MVC 2 0 应用程序 我有一个带有 报告 列表的下拉框 在下拉菜单旁边 我有两个 ActionLink 一个写着 添加新报告 另一个说 编辑报告 The 添加新报告 链接非常简单 它在我的控制器中调用 Vi
  • Haskell Stack 项目的 gitlab-CI:如何缓存构建的库?

    我正在使用以下内容 gitlab ci yml用于为使用创建的 Haskell Stack 项目设置 gitlab CI 的文件stack new actividad3 resolver lts 14 6 image haskell 8 6