可以在我的外壳文件中使用GitHub机密吗? [英] Is it possible to use GitHub secrets inside my shell file?

查看:16
本文介绍了可以在我的外壳文件中使用GitHub机密吗?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

这是我对GitHub回购的简单操作:

name: CI

on:
  push:
    branches: [ main ]

jobs:
  build:
    runs-on: ubuntu-latest
    steps:
      - name: Get /my_account/my_infra
        run: |
          sudo mkdir /my_account
          sudo chmod -R 777 /my_account
          cd /my_account
          git clone https://github.com/my_account/my_infra

      - name: Get /my_account/my_repo
        run: |
          cd /my_account
          git clone https://github.com/my_account/my_repo

      - name: Run my build script
        run: |
          cd /my_account/my_infra
          ./build.sh /my_account/my_repo

由于GitHub不提供跨多个类似repo重用操作的方法,因此我想到了创建一个基本repo的想法,然后与当前repo一起下载该基本repo,然后从该基本repo运行自定义外壳脚本,并将我的当前repo作为参数传递。

这个很好用。通过这种方式,我可以在许多类似的存储库中重复使用我的基本存储库。而且我可以重用近500行构建脚本,而不是为50个存储库重复自己(这意味着25000行CI/CD代码)。

但是,现在我需要访问一些资源(如登录到我的docker集线器帐户)才能拉取和推送东西。

是否可以在我的build.sh中使用GitHub机密?

推荐答案

当您在工作流中设置envdoc here时,它们将设置为容器化工作流中的环境变量。

这意味着,如果您在存储库中设置了密码,则可以在settings=secrets下找到该密码,然后将其分配给您工作流中的env,然后可以在build.sh

中访问这些密码

示例:

name: CI

on:
  push:
    branches: [ main ]

env:
  super_secret: ${{ secrets.my_secret }}

jobs:
  build:
    runs-on: ubuntu-latest
    steps:
      - name: Get /my_account/my_infra
        run: |
          sudo mkdir /my_account
          sudo chmod -R 777 /my_account
          cd /my_account
          git clone https://github.com/my_account/my_infra

      - name: Get /my_account/my_repo
        run: |
          cd /my_account
          git clone https://github.com/my_account/my_repo

      - name: Run my build script
        run: |
          cd /my_account/my_infra
          ./build.sh /my_account/my_repo

在这种情况下,您的build.sh可以执行如下操作:

#!/bin/bash

npm run build $super_secret

这篇关于可以在我的外壳文件中使用GitHub机密吗?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆