标签: github-actions

如何在 Github 工作流程中转义多行秘密?

我已被指示“以编程方式处理此问题”,但我无法更改或添加凭据文件。

使用 Github Actions,我创建了一个需要 GCloud 身份验证的工作流。不幸的是,变量似乎run在执行命令之前被替换,导致多行 YAML 文件产生一堆错误。

这是 YAML 的一个片段:

   # Setup gcloud CLI
    - name: Use Google Cloud Platform
      uses: GoogleCloudPlatform/github-actions/setup-gcloud@master
      with:
        version: '270.0.0'
        service_account_email: ${{ secrets.SA_EMAIL }}
        service_account_key: ${{ secrets.GOOGLE_APPLICATION_CREDENTIALS }}

    - run: cd ui/ && pwd && npm install && npm run test
      env:
        CI: true
    - run: |
        echo ${{ secrets.GCP_AUTH_STAGING }} | gcloud auth activate-service-account --key-file=-
        gcloud container clusters get-credentials staging --region northamerica-northeast1 --project example-staging
        cd ui/ && pwd && npm run …
Run Code Online (Sandbox Code Playgroud)

bash github-actions

4
推荐指数
2
解决办法
1325
查看次数

如何启用 github 操作以访问机密属性文件

我正在研究一个涉及很多敏感 api 密钥的 android 项目。这些键存储在特定的 gradle 属性文件中,该文件被 git 忽略。

secret.properties
apikey="938484738288274932228"

Run Code Online (Sandbox Code Playgroud)

问题是如何在不将文件推送到 git 的情况下启用 github 操作来访问此属性文件及其中的值。

已经尝试过 - 使用空白值制作一个后备属性文件(但这些值可能是未来测试所必需的)

java android github gradle github-actions

4
推荐指数
1
解决办法
2118
查看次数

Github Action DotNetCore sln 和项目在同一文件夹中

name: .NET Core
Run Code Online (Sandbox Code Playgroud)

on: push: 分支: [ master ] pull_request: 分支: [ master ]

工作:构建:

runs-on: ubuntu-latest

steps:
- uses: actions/checkout@v2
- name: Setup .NET Core
  uses: actions/setup-dotnet@v1
  with:
    dotnet-version: 3.1.101
- name: Install dependencies
  run: dotnet restore
- name: Build
  run: dotnet build --configuration Release --no-restore
- name: Test
  run: dotnet test --no-restore --verbosity normal
Run Code Online (Sandbox Code Playgroud)

这是我的 yml 代码。它显示错误 MSBUILD:错误 MSB1003:指定项目或解决方案文件。当前工作目录不包含项目或解决方案文件。

[错误]进程已完成,退出代码为 1。

in dotnet restorestep 因为项目文件夹中的sln。如何解决这个问题呢

yaml .net-core github-actions

4
推荐指数
2
解决办法
1361
查看次数

在 GitHub Actions 中,如何获取触发事件的类型作为变量?

我正在尝试为拉取请求何时打开或关闭设置一个 GitHub 操作,我想获取触发器的类型以将其添加到消息中。YAML 如下:

on:
    pull_requeste
        types: [opened, closed, reopened] #I’d like to get which one has been triggered
Run Code Online (Sandbox Code Playgroud)

例如 :

用户 X 已打开拉取请求

有人建议,${{env.GITHUB_EVENT_NAME}}但它是空的。${{github.event}}似乎是个好地方,但它返回一个带有 webhook 有效负载的对象,我不知道其中是否包含“类型”或如何获取它。

github github-actions

4
推荐指数
1
解决办法
1443
查看次数

如何执行shell脚本?

??? .github
?   ??? workflows
?       ??? cd.yml
?       ??? ci.yml
??? scripts
?   ??? createDevEBAppVersion.sh
?   ??? createProdEBAppVersion.sh
??? src
Run Code Online (Sandbox Code Playgroud)

Github Actions 抛出以下错误:

/home/runner/work/_temp/9c99fa0d-20da-49ed-a0af-322f274c13ac.sh:第1行:[refs/heads/develop:没有这样的文件或目录

/home/runner/work/_temp/9c99fa0d-20da-49ed-a0af-322f274c13ac.sh: line 5: [[refs/heads/develop: No such file or directory

??? .github
?   ??? workflows
?       ??? cd.yml
?       ??? ci.yml
??? scripts
?   ??? createDevEBAppVersion.sh
?   ??? createProdEBAppVersion.sh
??? src
Run Code Online (Sandbox Code Playgroud)

我试过没有working-directory,但没有奏效。

name: CD

env:
  PACKAGE_NAME          : "app_${GITHUB_SHA::8}.zip"
  ARTIFACT_ROOT         : "${GITHUB_REF#refs/*/}"
  APPLICATION_NAME      : "example-app-name"
  AWS_ACCESS_KEY_ID     : ${{ secrets.AWS_ACCESS_KEY }}
  AWS_SECRET_ACCESS_KEY : ${{ secrets.AWS_SECRET_KEY }} …
Run Code Online (Sandbox Code Playgroud)

bash github-actions

4
推荐指数
1
解决办法
3461
查看次数

在全栈项目中,你应该把 git hub 工作流目录放在哪里?

我正在构建一个带有节点后端的全栈 React 项目,并希望实现一个 git hub 操作来自动化持续集成的拉取请求。目前,在我的根目录中,我将我的项目分为两个目录,一个是前端目录,一个是保存客户端应用程序,一个是后端目录容器,一个是服务器端。我的问题是我应该将 .github 目录和关联的 .workflow 目录放在项目中的什么位置?在根级别还是在客户端或服务器端目录中?

在此处输入图片说明

git continuous-integration github reactjs github-actions

4
推荐指数
1
解决办法
2613
查看次数

在 Github Actions 中为 Django 设置 postgres

我目前正在 Django 上开发一个网站。在我的计算机上,我在带有 postgres 数据库的 Docker 上运行它。这是我拥有的 docker-compose 文件:

version: '3'

services:
    db:
        image: postgres
        environment:
            - POSTGRES_DB=postgres
            - POSTGRES_USER=postgres
            - POSTGRES_PASSWORD=postgres


    web:
        build: .
        volumes:
            - .:/usr/src/app
        ports:
            - "8000:8000"
Run Code Online (Sandbox Code Playgroud)

这是 settings.py 中的相关部分

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.postgresql',
        'NAME': 'postgres',
        'USER': 'postgres',
        'PASSWORD': 'postgres',
        'HOST': 'db',
        'PORT': 5432,
    }
}
Run Code Online (Sandbox Code Playgroud)

当我使用此设置在 docker 容器中运行我的测试时,它可以找到并运行测试。但是,在 github 操作中,它不起作用。这是我的工作流文件:

name: Django CI

on: push


jobs:
  build:

    runs-on: ubuntu-latest

    strategy:
      max-parallel: 4
      matrix:
        python-version: [3.7, 3.8]

    services:
      db:
        image: postgres
        env:
          POSTGRES_DB: …
Run Code Online (Sandbox Code Playgroud)

django django-testing django-postgresql github-actions

4
推荐指数
2
解决办法
1392
查看次数

在 GitHub Actions 中创建作业之间的依赖关系

我是 GitHub Actions 的新手,使用各种选项来制定 CI/CD 管道的好方法。

最初,我将所有 CI 步骤放在一项工作中,执行以下操作:

  • 来自 repo 的结帐代码
  • 皮棉
  • 扫描漏洞源
  • 建造
  • 测试
  • 创造形象
  • 扫描图像以查找漏洞
  • 推送到 AWS ECR

不过,其中一些步骤不需要按顺序完成;例如,我们可以在构建的同时运行 linting 和源代码漏洞扫描;节省时间(如果我们假设这些步骤将会通过)。

即基本上我希望我的管道做这样的事情:

job1 = {
 - checkout code from repo #required per job, since each job runs on a different runner
 - lint
}
job2 = {
 - checkout code from repo
 - scan source for vulnerabilities
}
job3 = {
 - checkout code from repo
 - lint
 - scan source for vulnerabilities
 - build
 - test …
Run Code Online (Sandbox Code Playgroud)

github github-actions

4
推荐指数
1
解决办法
5905
查看次数

Github 的动作不是构建 React 应用程序

当我构建时 (npm run build "scripts": { "build": "react-scripts build --passWithNoTests" }

) 项目,它成功构建。但是当我推送更改时,github 上的构建过程失败

> log@0.1.0 build /home/runner/work/project/project
> react-scripts build --passWithNoTests

Creating an optimized production build...

Treating warnings as errors because process.env.CI = true.
Most CI servers set it automatically.

Failed to compile.

npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! log@0.1.0 build: `react-scripts build --passWithNoTests`
npm ERR! Exit status 1
npm ERR! 
npm ERR! Failed at the log@0.1.0 build script.
npm ERR! This is probably not …
Run Code Online (Sandbox Code Playgroud)

github node.js npm reactjs github-actions

4
推荐指数
1
解决办法
1525
查看次数

如何使用 GitHub Actions 安装私有 Pod?

我正在尝试在我的工作流脚本上安装我的依赖项。但是,有些是私人豆荚,当我尝试这样做时,它给了我这个错误bundle exec pod install

Cloning spec repo `cocoapods` from `https://github.com/CocoaPods/Specs`
Cloning spec repo `keterauk` from `https://github.com/KeteraUK/Strive-Pod-Specs`
[!] Unable to add a source with url `https://github.com/KeteraUK/Strive-Pod-Specs` named `keterauk`.
You can try adding it manually in `/Users/runner/.cocoapods/repos` or via `pod repo add`.
##[error]Process completed with exit code 1.
Run Code Online (Sandbox Code Playgroud)

pod repo add...导致此错误:fatal: could not read Username for 'https://github.com': Device not configured即使我添加了我的个人访问令牌(秘密)。

这是我的完整脚本:

Cloning spec repo `cocoapods` from `https://github.com/CocoaPods/Specs`
Cloning spec repo `keterauk` from `https://github.com/KeteraUK/Strive-Pod-Specs`
[!] Unable to add …
Run Code Online (Sandbox Code Playgroud)

xcode github cocoapods github-actions

4
推荐指数
1
解决办法
1708
查看次数