gpt4 book ai didi

shell - 是否可以在我的 shell 文件中使用 GitHub secret ?

转载 作者:行者123 更新时间:2023-12-05 01:28:35 25 4
gpt4 key购买 nike

这是我在 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 不提供跨多个相似存储库重用操作的方法,我想出了创建一个基本存储库的想法,然后下载该基本存储库和当前存储库,然后从该基本存储库运行自定义 shell 脚本,将我当前的存储库作为参数传递。

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

但是,现在我需要访问一些资源(比如登录我的 docker hub 帐户)来拉取和推送东西。

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

最佳答案

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

这意味着如果你在你的存储库中设置了一个 secret ,可以在 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

关于shell - 是否可以在我的 shell 文件中使用 GitHub secret ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68435485/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com