首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

PHP / Github Actions工作流:如何在$_ENV中提供秘密

基础概念

$_ENV 是 PHP 中的一个超级全局变量,用于访问环境变量。环境变量是在操作系统级别设置的变量,可以在应用程序中访问这些变量,而无需硬编码敏感信息。

GitHub Actions 是 GitHub 提供的持续集成和持续部署(CI/CD)平台。它允许开发者定义工作流(workflows),这些工作流可以在代码提交、拉取请求等事件发生时自动执行。

相关优势

  • 安全性:通过将敏感信息存储在环境变量中,而不是直接写入代码,可以减少安全风险。
  • 灵活性:环境变量可以在不同的环境中轻松更改,而不需要修改代码。
  • 易于管理:GitHub Actions 允许在工作流中定义环境变量,使得配置管理更加集中和一致。

类型

在 GitHub Actions 中,环境变量可以分为两类:

  1. 秘密(Secrets):敏感信息,如 API 密钥、密码等,只能在仓库设置中配置,并且在工作流文件中通过 secrets 关键字引用。
  2. 变量(Variables):非敏感信息,可以在工作流文件中直接定义,也可以在仓库设置中配置。

应用场景

当你需要在 PHP 应用程序中使用 GitHub Actions 进行 CI/CD 时,可能需要将一些敏感信息(如数据库密码、API 密钥等)传递给 PHP 应用程序。通过将这些信息存储在 GitHub Secrets 中,并在工作流中设置到 $_ENV,可以实现这一目的。

如何在 $_ENV 中提供秘密

以下是一个示例,展示如何在 GitHub Actions 工作流中将秘密设置为 PHP 的环境变量:

步骤 1:在 GitHub 仓库中创建一个秘密

  1. 进入你的 GitHub 仓库。
  2. 点击 Settings 选项卡。
  3. 在左侧菜单中选择 Secrets
  4. 点击 New repository secret 按钮。
  5. 输入秘密的名称(例如 DB_PASSWORD)和值(你的数据库密码),然后点击 Add secret

步骤 2:在工作流文件中设置环境变量

在你的 GitHub 仓库中创建一个 .github/workflows 目录,并在其中创建一个 YAML 文件(例如 ci.yml)。在该文件中定义工作流,并将秘密设置为环境变量:

代码语言:txt
复制
name: CI

on: [push]

jobs:
  build:
    runs-on: ubuntu-latest

    steps:
    - name: Checkout code
      uses: actions/checkout@v2

    - name: Set up PHP
      uses: shivammathur/setup-php@v2
      with:
        php-version: '7.4'

    - name: Add secrets to environment
      run: |
        echo "${{ secrets.DB_PASSWORD }}" >> $GITHUB_ENV

    - name: Run tests
      run: |
        php -d variables_order=EGPCS -r "echo $_ENV['DB_PASSWORD'];"

在这个示例中,我们使用 echo 命令将秘密添加到 $GITHUB_ENV 环境变量中。这样,PHP 应用程序就可以通过 $_ENV 访问这个秘密。

参考链接

通过这种方式,你可以安全地将敏感信息传递给 PHP 应用程序,并在 GitHub Actions 中进行 CI/CD 流程。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

创建现代npm包的最佳实践

对于这个例子的npm包,你使用GitHub作为你的源码控制管理工具,所以利用它的GitHub Actions功能将Snyk整合到工作流。...Snyk 有一个GitHub Actions参考项目,可以帮助启动这方面的工作,并为你的项目可能使用的其他编程语言和工具提供例子。 Snyk是免费的,这里可以进行注册。...Github Actions [email protected] modern-npm-package % 将npm令牌作为仓库秘密添加到GitHub仓库:https://github.com/<your-name-or-organization...然后在你的终端复制并运行完整的命令,看看一切是否运行正常。你会看到进程被记录在终端的输出。如果出现任何问题,它们会在这里显示出来,并提供解决这些问题的细节。...在确认试运行成功后,可以为GitHub仓库设置一个新的GitHub动作来为你处理发布过程。转到你在GitHub上的仓库,点击 "Actions"。 点击新建工作流程选项。

2.1K10
  • 如何将你的Python项目全面自动化?

    GitHub Actions 是帮助你自动化开发工作流的作业 / 管道。你可以使用它们创建单个的任务,然后将它们合并到自定义工作流,然后在每次推送到存储库或创建发布时执行这些任务。.../development-tools-for-github-actions#set-an-environment-variable-set-env )。...接下来,它使用存储在存储库的 secretREGISTRY_TOKEN登录到 Docker 注册中心,并由发起工作流的用户登录(github.actor)。...我们所要做的就是提供 2 个令牌——GitHub 令牌默认已在存储库,SonarCloud 令牌可以从 SonarCloud 网站获得。...注意:关于如何获取和设置前面提到的所有令牌和秘密的步骤都在存储库的自述文件:https://github.com/MartinHeinz/python-project-blueprint/blob/master

    94240

    零基础入门 GitHubGitea Actions 流程自动化

    GitHub 提供 Linux、Windows 和 macOS 虚拟机来运行工作流程,或者您可以在自己的数据中心或云基础架构托管自己的自托管运行器。...使用操作可帮助减少在工作流程文件编写的重复代码量。 操作可以从 GitHub 拉取 git 存储库,为您的构建环境设置正确的工具链,或设置对云提供商的身份验证。...GitHub 提供 Ubuntu Linux、Microsoft Windows 和 macOS 运行器来运行您的工作流程;每个工作流程运行都在新预配的全新虚拟机执行。...你还可以设置自定义变量,以便在单个工作流或多个工作流中使用。 变量提供了一种存储和重用非敏感配置信息的方法。 可以将任何配置数据(编译器标志、用户名或服务器名称)存储为变量。...可以定义作用域如下的变量: 整个工作流,方法是在工作流文件的顶层使用 env工作流的作业内容,方法是使用 jobs..env。 作业的特定步骤,方法是使用 jobs.

    17610

    React 应用架构实战 0x8:配置 CICD 进行测试和部署

    在本节,我们将学习什么是 CI/CD 。然后,我们将学习 GitHub Actions 是什么以及 GitHub Actions 流水线的主要部分是什么。...# 使用 GitHub Actions GitHub Actions 是一种 CI/CD 工具,它允许我们自动化、构建、测试和部署流水线。我们可以创建在仓库的特定事件上运行的 workflow 。...type=actions (opens new window) 上找到,或者我们可以自己创建。在我们的流程,我们将使用一些预定义的 Actions。...现在我们已经熟悉了 GitHub Actions 的基础知识,可以开始创建我们的应用程序工作流程。...让我们创建 .github/workflows/main.yml 文件和初始代码: name: CI/CD on: - push jobs: # add jobs here 在上面的代码,我们提供工作流的名称

    66920

    5 分钟玩转史上最强大的自动发布工具 GitHub Actions

    (1)workflow (工作流程):持续集成一次运行的过程,就是一个 workflow。...上面代码,steps 字段只包括一个步骤。该步骤先注入四个环境变量,然后执行一条 Bash 命令。...我们选用一个别人已经写好的 action:JamesIves/github-pages-deploy-action,它提供了 workflow 的范例文件,直接拷贝过来就行了(查看源码)。...: Build and Deploy uses: JamesIves/github-pages-deploy-action@master env: ACCESS_TOKEN...第二步需要四个环境变量,分别为 GitHub 密钥、发布分支、构建成果所在目录、构建脚本。其中,只有 GitHub 密钥是秘密变量,需要写在双括号里面,其他三个都可以直接写在文件里。

    1.4K20

    GitHub Actions构建Docker镜像

    GitHub Actions是为GitHub上的项目添加CI / CD工作流的自动化工具。注意:在本文中,我们将讨论将CI / CD工作流程集成到使用Docker的项目中的各个步骤。...GitHub为许多最受欢迎的平台提供了预定义的工作流,您还可以在可视化编辑器自定义或创建全新的工作流。不过,在这个项目中,我们将采用手动方法命令创建YAML文件来使用工作流。...在Pytho项目的根文件夹,创建一个新文件夹.github并创建子文件夹workflows。这是我们的工作流YAML文件所在的位置。...因此,我们将这些凭据添加到我们项目的秘密。要添加此代码,请转到您的项目的存储库设置/settings/secrets。...在“ 秘密”选项卡,从工作流文件(*DOCKER_USERNAME*和*DOCKER_PASSWORD*)添加具有相同名称的秘密密钥,然后粘贴以下值: 就这样-提交您的代码并推送它。

    2.4K10

    如何使用 GitHub Actions 构建 Docker 镜像

    Action 因此,要开始使用GitHub操作,请在GitHub的repo页面上单击Actions选项卡: 您现在应该看到一个类似于以下内容的页面: 这一步将我们登录到Docker Hub Registry...不过,这里有一些新的东西,那就是我们正在使用的秘密GitHub在每个存储库的设置中有一个部分,您可以在其中设置用于GitHub操作等的秘密。...这很棒,因为否则就没有办法登录到第三方服务,Docker Hub,而不把你的密码或访问密钥放在仓库,每个人都可以看到。...查看工作流输出 要查看工作流中发生的情况,并在需要时进行调试,请返回到存储库Actions选项卡。...一旦你创建了一个动作,该页面将看起来像这样: 除了在Actions选项卡输出您的工作流之外,不要忘记转到Docker Hub并在那里查看您的图像!

    69710

    GitHub Actions是什么

    GitHub Actions是什么GitHub ActionsGitHub提供的一项自动化工具服务,它允许开发者直接在GitHub仓库设置、定制和执行工作流程。...GitHub Actions提供了多种运行环境(Ubuntu、Windows和macOS)和Docker集成,以满足各种应用的需求开发者还可以在GitHub Marketplace上共享自己的Actions...示例以下是一个简单的GitHub Actions工作流示例该示例演示了如何在每次向master分支推送代码时自动运行测试:在这个示例工作流名为“CI”它会在每次向master分支推送代码时触发。...五、集成GitHub生态与GitHub紧密集成:GitHub ActionsGitHub提供的一项集成服务,与GitHub的其他功能(代码仓库、拉取请求等)紧密集成,方便用户使用。...丰富的预构建ActionsGitHub Actions提供了丰富的预构建Actions,覆盖了各种常见任务,用户可以轻松集成到自己的工作流

    8120

    如何制作 GitHub 个人主页

    我将向你展示一个例子,告诉你如何在不费吹灰之力的情况下迅速做到这一点。在这个例子,你将学习如何抓取一个网站并使用这些数据来动态更新你的GitHub个人主页。...定义一个放置动态内容的地方 在scripts/添加一个脚本,用来完成爬取工作 在workflows/GitHub Actions添加一个工作流,按计划运行该脚本 现在让我们逐步实现。...这就轮到GitHub Actions出场了! 创建Action工作流 现在我们已经有了脚本,我们需要一种方法来按计划自动运行它。...GitHub Actions 提供了一种强大的方式来自动化各种任务,包括运行脚本。在这种情况下,我们将创建一个GitHub Actions工作流,每周在周日午夜运行一次该脚本。.../scripts/update_posts.rb env: GITHUB_TOKEN: $ GITHUB_REPOSITORY: $ 这个工作流是根据cron

    32430

    GitHub Actions 指南

    GitHub Actions 指南 GitHub Actions 使你可以直接在你的 GitHub创建自定义的工作流工作流指的就是自动化的流程,比如构建、测试、打包、发布、部署等等,也就是说你可以直接进行...GitHub-hosted runner 其实就是 GitHub 提供的虚拟环境,目前有以下四种: windows-latest : Windows Server 2019 ubuntu-latest...1、引用公有库的 action 引用 action 的格式是 {owner}/{repo}@{ref} 或 {owner}/{repo}/{path}@{ref} ,例如上例的 actions/checkout...@v1 ,你还可以使用标准库的其它 action ,设置 node 版本: jobs: my_first_job: name: My Job Name steps:...构建 actions 请参考:building-actions ---- env 环境变量可以配置在以下地方: env jobs..env jobs.

    1K30

    如何利用github action实现自动构建、打包部署

    这是我参与「掘金日新计划 · 10 月更文挑战」的第1天,点击查看活动详情 GitHub Action简介 GitHub Actions使你可以直接在你的GitHub创建自定义的工作流工作流指的就是自动化的流程...简单地说,就是利用官方以及第三方提供actions,组合action来实现一些你能做到的其他事情,比如抓取代码、运行测试、登录远程服务器,发布到第三方服务等等。...另外,官方以及第三方提供actions 都收集在这里 Marketplace Actions和awesome actions 的仓库 基本概念 workflow (工作流程):持续集成一次运行的过程,...配置 workflow workflow必须存储在你的github项目库路径下的 .github/workflows 目录,每一个 workflow对应一个具体的.yml 文件。...env: TEST_ENV: first step 上例,环境变量名是重复的,会优先使用最近的变量 一个实验例子 name: My GitHub Actions on: watch

    98110

    【翻译】.NET 💜 GitHub Actions: .NET 的 GitHub Actions 简介

    在这篇文章,您将了解 GitHub Actions 如何改善您的 .NET 开发体验和团队生产力。我将向您展示如何使用它们通过工作流组合来自动化常见的 .NET 应用程序开发场景。...GitHub 工作流GitHub 存储库的 YAML(.yml或.yaml)文件。这些工作流文件位于存储库根目录下的.github/workflows/目录。...工作流工作流是一个可配置的自动化过程,将运行一个或多个作业。 事件:事件是存储库触发工作流运行的特定活动。 作业:作业是工作流在同一运行器上执行的一组步骤。...我整理了一个序列图(由Mermaid提供支持),它显示了开发人员如何可视化这个工作流程。...在以后的文章,我将展示如何使用 .NET 创建 GitHub Actions

    85920

    零成本 API 服务搭建,用 GitHub Actions 自动爬取文章?

    所以下面就实践一下如何在 GitHub 上搭建 API 服务,以及如何自动化更新数据(部署爬虫)?...定时爬虫部署要实现自动化更新数据,那就要定时手动上传和直接爬虫爬取,可以通过 GitHub Actions 工作流的方式实现,下面第一次使用的方式演示如何创建并运行 workflow。...git 拉取后会在项目中生成一个.github 文件夹,依次点进去是刚才创建的工作流 yml 文件。yml 配置说明name:工作流名称,展示在用于表示工作流。...workflow_dispatch: 是否允许在 github actions 操作选项卡手动操作,默认是可以。jobs:任务执行的定义。...steps: 步骤,工作流依次执行的步骤,每个都有一个名字和具体的运行指令,可以使用 actions 包 (github 提供的集成程序,比如用于检出仓库代码的,python 环境的等等)。

    9310

    【玩转腾讯云】Github Actions+CVM实践(CICD如此简单)

    为了把概念讲的通俗易懂,我们来看个点餐流程 如下图: 点餐流程.png github actions的概念名词 如下图: order-yml.png 名次解释 workflow (工作流水线):多个任务组成的工作流...,一个项目下可以有多条工作流水线。...actions (操作动作):每个步骤所需要的工具,可以理解为每一步骤内的小操作点。官方提供了插件市场,还可以自己编写,目前支持js和docker两种创建方式。...两外还需要了解两个重要的参数 runs-on(任务的环境):目前官网提供三种环境,支持self-host env (环境变量):支持github私有变量,workflow全局变量,job、step局部变量...// ---> 工作流程文件 必须 --src/ // ---> 源代码 order.yml文件内容结构 name: GitHub Actions order.yml

    2.5K359

    分享一些 GitHub Actions 的实用技巧

    GitHub ActionsGitHub 的持续集成服务,该功能非常类似于 Jenkins Pipeline 的能力,相当于 GitHub 为每个用户提供了一个 Jenkins 平台,可供大家跑一些简单...我的好几个项目已经使用到了 GitHub Actions 的能力,以下是我总结的可以用 GitHub Actions 来构建的一些场景: 代码提交或者请求合入的时候跑代码检查脚本,用来检查提交的代码是否合规...Actions 的具体用法我这里就不做介绍了,官网的 wiki 写的比较清楚,我这里只分享一些官网有写到,但是不容易在实际操作想到怎么用的操作技巧。...使用 github 上下文信息 何为 github 上下文信息? 也就是 github工作流可以直接读取的关于项目本身、关于job、事件等的一些信息,这些信息都可以在任务执行过程读取使用。.../article/github-actions/ 许可协议:署名-非商业性使用 4.0 国际许可协议

    29400

    GitHub推出新功能Actions,直接网站上构建、共享和执行代码

    GitHub Actions是一个用于GitHub的因果关系的API,即基于任何事件协调任何工作流,与此同时GitHub负责管理执行、提供丰富的反馈,并保证整个过程的每一步。...使用GitHub Actions工作流和步骤只是存储库的代码,因此开发者可以创建、共享、重用和fork开发者的软件开发实践。 自从GitHub去年推出GitHub Actions以来,反向非常好。...适用于任何操作系统、任何语言和任何云的快速CI/CD GitHub Actions现在可以更轻松地自动化在任何平台(包括Linux,macOS和Windows)上构建、测试和部署项目的方式,在容器或虚拟机运行工作流...Actions还支持比以往更多的语言和框架,包括Node.js,Python,Java,PHP,Ruby,C/C++,.NET,Android和iOS。...开发者还可以重用第三方提供的丰富Actions生态系统,例如LaunchDarkly,mabl,Code Climate,GitKraken,甚至连构建在其他CI提供商(CircleCI)上的trigger

    1.1K20

    GitHub Actions 集成 CICD 功能,推进开发编译测试部署流程自动化

    近日公开的新版本Actions 支持基本上所有的编程语言,因此也可以在多个平台上使用, Linux、Linux Container、Windows 和 macOS 等。...此外,和 2018 年公开的版本相比,Actions 支持了更多的编程语言,包括主流的开发语言, Node.js、Python、Java、PHP、Ruby、C/C++、.NET,以及 Android...例如,开发者使用了一个 node 项目,则 Actions 平台会自动提供针对 node 项目的工作流建议。而 GitHub 官方仍在优化这一功能,希望为特定的项目提供特定的工作流建议。...建议工作流 前文提及,为了帮助开发者更快地构建和发布自己的代码,GitHub Actions 集成了建议工作流功能。这一功能会为每个开发者的项目提供合适的工作流建议,方便上手。...Actions工作流程演示 根据 GitHub 官方提供的资料,机器之心整理了使用 Actions 工具的示例代码。

    1K20

    五分钟了解 GitHub Actions

    GitHub ActionsGitHub 提供的一项持续集成(CI)和持续部署(CD)服务,它可以帮助开发者自动化软件开发过程的各种任务,构建、测试、部署等。...创建 Workflow 文件 GitHub Actions 的配置文件称为 Workflow 文件,通常存储在仓库的 .github/workflows 目录。...使用 Actions GitHub 提供了一系列已经封装好的 Actions,你可以直接在 Workflow 文件中使用这些 Actions,无需自己编写复杂的脚本。...存储密钥和凭证 在 Workflow 文件,你可以使用 GitHub Secrets 来存储敏感信息和凭证,访问仓库的 API 密钥、访问第三方服务的凭证等。 8....监视和调试 GitHub Actions 提供了丰富的监视和调试工具,你可以查看 Workflow 的执行日志、查看每个步骤的输出、查看执行时间等信息。

    7310
    领券