laravel - 如何防止 GitHub 操作替换某些文件
问题描述
我想做一个简单的 CD/CD 来为我的 Laravel 项目进行自动部署,但结果我的 .env 文件总是被替换。我如何确保它不总是被替换
这是我的动作文件
name: Laravel
on:
push:
branches: [ main ]
pull_request:
branches: [ main ]
jobs:
laravel-tests:
runs-on: self-hosted
steps:
- uses: shivammathur/setup-php@b7d1d9c9a92d8d8463ce36d7f60da34d461724f8
with:
php-version: '7.4'
- uses: actions/checkout@v2
- name: Copy .env
run: php -r "file_exists('.env') || copy('.env.example', '.env');"
- name: Install Dependencies
run: composer install -q --no-ansi --no-interaction --no-scripts --no-progress --prefer-dist
- name: Generate key
run: php artisan key:generate
- name: Directory Permissions
run: chmod -R 777 storage bootstrap/cache
- name: Create Database
run: |
mkdir -p database
touch database/database.sqlite
- name: Execute tests (Unit and Feature tests) via PHPUnit
env:
DB_CONNECTION: sqlite
DB_DATABASE: database/database.sqlite
run: vendor/bin/phpunit
解决方案
每次您的工作流程运行时,您都会获得一台新机器。因此,没有您在上次运行时创建的文件。因此,如果您需要在运行时创建一些文件,则每次都需要重复此步骤。
请在此处查看以了解更好的 github ations 基础知识。
您没有太多选择来共享此文件 accros run,因为在工件中保密是不好的选择。因此,每次需要时,您都需要根据您可能保存在秘密上下文中的秘密重新创建此文件。请检查此链接:
- name: Create env file
run: |
cat << EOF >> .env
API_ENDPOINT="https://xxx.execute-api.us-west-2.amazonaws.com"
API_KEY=${{ secrets.API_KEY }}
EOF
推荐阅读
- c# - 尝试遍历 IEnumerable 时,指定的强制转换无效
在 C# 中 - python - Python 中的 Sql 查询不返回任何内容
- javascript - JavaScript:将数组向左旋转,然后向右旋转给定的旋转次数
- node.js - 带有net.socket的Nodejs反向shell
- sql - 如何编写一个 SQL 查询来显示与特定产品在同一购物车中销售的前 5 件商品?
- react-native - react-native-webrtc 无法创建 RTCPeerConnection
- ruby-on-rails - 在 rspec 的上下文中循环不会正确设置 let 变量
- vb.net - 控制在其位置不断变化时闪烁
- haskell - 我可以编译这个模棱两可的类型函数吗?
- java - 处理 Firestore 数据库对象