使用 GitLab CI/CD 等 GitHub 操作

Posted

技术标签:

【中文标题】使用 GitLab CI/CD 等 GitHub 操作【英文标题】:Using GitHub actions like GitLab CI/CD 【发布时间】:2020-09-09 15:41:34 【问题描述】:

我刚刚开始将我所有的 GitLab 存储库迁移到 GitHub。我有一段时间没有使用 GitHub,所以我偶然发现了 - 至少对我来说是新功能 - GitHub Actions。

由于我刚开始一个新项目,我想使用 GitHub Actions 来构建和部署我的新应用程序。我真的不知道我做错了什么,我将在下面附上我的工作流程文件。

我想要实现的是,每次我推送到一个不是我的 master 并且没有前缀“release/”的分支时,我都想为我的开发系统执行这个构建和部署。稍后我还将设置相同的脚本,但仅适用于暂存(预生产)系统,前提是我推入前缀为“release/”的分支,并且确实是第三次仅用于主分支的生产。

我想知道的是,这些操作 - 至少就我的理解而言 - 是零星执行的。我想要像在 GitLab 中那样的行为:每次我从本地工作机器推送功能分支或任何东西时,都应该执行开发管道。然后我将创建一个拉取请求。只有当管道成功时,我才希望能够合并。合并到一个分支后(例如 feature/... 到develop),我想自动执行管道进行开发。

我什至不确定这是否可能。也许我也没有正确理解动作的概念。

name: Publish Development
on:
  push:
    branches:
      - '**'
      - '!master'
      - '!release/**'
  pull_request:
    branches:
      - '**'
      - '!master'
      - '!release/**'

jobs:
  build-and-deploy:
    name: Build and Deploy
    runs-on: ubuntu-latest
    steps:
      - name: check out repository
        uses: actions/checkout@v2
        with:
          token: $ secrets.PRIVATE_ACCESS_TOKEN
      - name: install dependencies
        run: npm install
      - name: install dependencies
        run: npm --prefix ./functions install ./functions
      - name: deploy to firebase
        uses: w9jds/firebase-action@master
        with:
          args: deploy
        env:
          FIREBASE_TOKEN: $ secrets.FIREBASE_TOKEN 
          PROJECT_ID: $ secrets.FIREBASE_PROJECT_ID 

谢谢!

编辑: 原来我只是在一些服务中断期间开始尝试新技术。 GitHub was experiencing some issues in their infrastructure。它现在按预期工作。

【问题讨论】:

【参考方案1】:

原来我只是在一些服务中断期间开始尝试新技术。 GitHub 在其基础架构中遇到了一些问题。它现在按预期工作。

【讨论】:

以上是关于使用 GitLab CI/CD 等 GitHub 操作的主要内容,如果未能解决你的问题,请参考以下文章

CI/CD之搭建私有git仓库gitlab

CI/CD之Jenkins+Gitlab

基于GitLab的CI/CD系统重点记要

Gitlab CI/CD自动部署方案探索

Gitlab CI/CD自动部署方案探索

Gitlab CI/CD自动部署方案探索