介绍
GitHub 支持分布式和协作代码开发。 为了确保软件正常工作,许多项目使用持续集成来构建和测试每个新贡献,然后再包含它。 GitHub上的持续集成服务是 GitHub 操作.
背景
GitHub 提供在 Ubuntu、macOS 和 Windows 操作系统上的测试。 但是,还有各种各样的其他操作系统,您可能希望确保在 GitHub 上开发的开源项目在其他操作系统上运行良好,尤其是 Fedora Linux。
Podman 是一个命令行工具,可以在容器中运行不同的 Linux 操作系统。 这提供了一种在其他操作系统上测试软件的便捷方式。 Podman 入门一文在 Fedora Linux 介绍如何运行 Podman Fedora.
本文演示如何运行 Fedora 使用 Podman 的容器中的 Linux。 主机操作系统可以是任何安装了 Podman 的发行版,甚至是 macOS 或 Windows。 在下面的演示中,主机操作系统是 Ubuntu。 这将使我们能够测试在 GitHub 上开发的项目能否在 Fedora, 即使 Fedora 不可用作 GitHub 操作的基本操作系统。
GitHub 操作配置示例
作为一个 example,我们为 Fedora Linux 到 红琥珀,一个支持将数据帧用于机器学习和其他数据科学应用程序的项目 红宝石. 这个项目依赖于 Apache 箭 释放 10 或更大,所以我们需要使用 Fedora Linux 生皮 (F38) 自 Fedora Linux 37 目前有 Apache 箭头释放 9 Fedora 存储库。
GitHub 有很好的使用文档 GitHub 操作. 总之,我们需要创建一个 yaml 项目的 .github/workflows 目录中的文件,然后启用 GitHub Actions(如果尚未启用)。 您可以轻松修改的示例 yaml 文件如下:
name: CI on: push: branches: - main pull_request: jobs: test: name: fedora runs-on: ubuntu-latest steps: - name: Setup Podman run: | sudo apt update sudo apt-get -y install podman podman pull fedora:38 - name: Get source uses: actions/checkout@v3 with: path: 'red_amber' - name: Create container and run tests run: | { echo 'FROM fedora:38' echo '# set TZ to ensure the test using timestamp' echo 'ENV TZ=Asia/Tokyo' echo 'RUN dnf -y update' echo 'RUN dnf -y install gcc-c++ git libarrow-devel libarrow-glib-devel ruby-devel' echo 'RUN dnf clean all' echo 'COPY red_amber red_amber' echo 'WORKDIR /red_amber' echo 'RUN bundle install' echo 'RUN bundle exec rake test' } > podmanfile podman build --tag fedora38test -f ./podmanfile
添加上面的 yaml 文件可以测试 Fedora Linux 在 Ubuntu 上作为访客运行。 类似的工作流程应该适用于在 GitHub 上开发的其他项目,从而确保各种软件都能在 Fedora Linux。
致谢
Benson Muite 感谢 铃木博和 用于创建 RedAmber、改进工作流程并使用它来测试 RedAmber Fedora Linux。