可以在我的外壳文件中使用GitHub机密吗? [英] Is it possible to use GitHub secrets inside my shell file?
本文介绍了可以在我的外壳文件中使用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机密?
推荐答案
当您在工作流中设置env
doc 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屋!
查看全文