我想通过在 GitHub 中创建发布标签来控制发布,例如:
name: deploy-live
on:
push:
tags:
- release-v*
Run Code Online (Sandbox Code Playgroud)
但也可以运行部署来使用 Webhook 重新构建我的静态网站,该 Webhook 采用最新版本标签(并且不包括最新版本标签之后的任何开发工作):
name: deploy-live
on:
push:
tags:
- release-v*
repository_dispatch:
types:
- prismic_content_update
Run Code Online (Sandbox Code Playgroud)
目前,这将从主分支重新构建站点,包括自上次发布标签以来的所有更改。有没有办法在部署之前将 HEAD(不包括更改)重置为最新版本标签?
我的工作流程需要从用户接收 2 个输入参数。这些参数的有效值由单独的脚本定义。这些值可以更改(无法对它们进行硬编码),因此我想在运行作业时动态填充列表。选择器应根据允许用户选择的脚本结果进行更新,然后才应使用这些值作为作业的输入来运行实际作业
如何提供这样的下拉菜单?
我想设置 github 操作
我设法让第二步和第三步正常工作,但现在将第一步结合起来是一个问题。
- name: Cache Nuget
- uses: actions/cache@v1
with:
path: ~/.nuget/packages
key: ${{ runner.os }}-nuget-${{ hashFiles('**/*.csproj') }}
restore-keys: |
${{ runner.os }}-nuget-
Run Code Online (Sandbox Code Playgroud)
我试图把它放在后面- uses: actions/checkout@v2,但它抛出以下错误。
every step must define a `uses` or `run` key
Run Code Online (Sandbox Code Playgroud)
...
steps:
- uses: actions/checkout@v2
- name: Cache Nuget
- uses: actions/cache@v1
with:
path: ~/.nuget/packages
key: ${{ runner.os }}-nuget-${{ hashFiles('**/*.csproj') }}
restore-keys: |
${{ runner.os }}-nuget-
- name: Setup .NET
uses: actions/setup-dotnet@v1
...
Run Code Online (Sandbox Code Playgroud)
我究竟做错了什么?
感谢帮助。
这是完整的配置。 …
我正在尝试根据 github 操作工作流程的成功或失败设置 github 分支保护规则。
您可以在此处查看工作流程:
https://github.com/apostropecms/apostrope/blob/main/.github/workflows/main.yml
工作流程通过了,我什至有一个工作徽章,但我无法设置要求其通过状态检查的分支保护规则。
我可以根据矩阵中的任何一个单独构建设置分支保护规则,但我不想单独设置所有这些规则并在矩阵规则更改时跟踪它们。
正如您从屏幕截图中看到的,我无法选择“构建”,即作业的名称(尽管我可以选择任何子构建),而且我也无法选择“测试”,即作业的名称。整个工作流程(如果我使用大写 t,它不会改变)。
我缺少什么?感谢您的帮助!
屏幕截图一:我可以选择一个子构建,但不能选择整个构建作业。
屏幕截图二:我根本无法选择整个“测试”工作流程的名称。
我已经在 github actions 上创建了一个部署操作。这一切都适用于composer install 和 git pull master 分支。然而,在我的数字海洋水滴上,我遇到了问题:
bash: line 4: npm: command not found
如果我 ssh 进入我的服务器,我可以很好地使用 npm。这是通过 nvm 安装的并使用最新版本,但由于某种原因无法通过操作访问。我的部署脚本是
on:
push:
branches: [master]
jobs:
deploy:
runs-on: ubuntu-latest
steps:
- name: Deploy Laravel APP
uses: appleboy/ssh-action@v0.1.4
with:
host: ${{secrets.SSH_HOST}}
key: ${{secrets.SSH_KEY}}
username: ${{ secrets.SSH_USER }}
script: |
cd /var/www/admin
git pull origin master
composer install
npm install
npm run prod
Run Code Online (Sandbox Code Playgroud)
我认为这更多地与 nvm 的设置有关,因为我可以通过 ssh 使用它,但由于他们使用同一用户通过 ssh 登录,我似乎看不到问题。
有什么想法可以解决此问题以授予访问/允许 github 操作使用 npm 的权限吗?
我有一个使用 Github Action/Workflows 的 CI 管道设置,我想在其中运行 Cypress 自动化测试,但是我在如何运行我的开发服务器方面遇到了一些逻辑问题。让我向你展示我的管道
name: Nuxt CI Pipeline
on:
push:
branches: [ CI-pipeline ]
# pull_request:
# branches: [ master ]
jobs:
build:
runs-on: ubuntu-latest
strategy:
matrix:
node-version: [ 14.x ]
# See supported Node.js release schedule at https://nodejs.org/en/about/releases/
steps:
- uses: actions/checkout@v2
- name: Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v2
with:
node-version: ${{ matrix.node-version }}
cache: 'npm'
- name: Make envfile
uses: SpicyPizza/create-envfile@v1
with:
envkey_ENV: staging
file_name: .env
- run: npm ci
- run: …Run Code Online (Sandbox Code Playgroud) 我一直在尝试了解如何使用 github actions 将多行评论写入 PR。我试图使用 github.rest.issues.createComment() (如评论拉取请求...中所示),然后使用环境变量处理多行问题,如下所示:工作流命令。最终目标是从 python 脚本(或日志文件)中获取一些多行输出标准输出,并将其作为注释放回到正在运行的工作流的 PR。下面的 yml 文件运行良好,直到最后一步,我尝试访问我创建的环境变量并将其用作 createComment() 的主体。环境变量已创建并且似乎可用,但当我尝试将其用于评论正文时失败。来自 github 操作的错误位于代码下方。如果我像这样添加引号,body: "${{env.SCRIPT_OUTPUT}}"我会得到同样的错误。如果可能的话,我想使用 createComment() ,我知道 Peter Evans 有一个创建评论,我接下来可能会尝试,但试图理解为什么这不起作用。
name: GitHub Actions Test Multi-line
on:
pull_request:
branches:
- Dev
jobs:
Run-check-references:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
with:
fetch-depth: 0
- run: |
SCRIPT_OUTPUT=$(cat << EOF
first line
second line
third line
EOF
)
echo "SCRIPT_OUTPUT<<EOF" >> $GITHUB_ENV
echo "$SCRIPT_OUTPUT" >> $GITHUB_ENV
echo "EOF" >> $GITHUB_ENV
- run: |
echo "${{env.SCRIPT_OUTPUT}}" …Run Code Online (Sandbox Code Playgroud) 这个问题包括一个特定的用例:
@myscope/mypackagehttps://company.jfrog.io/artifactory/api/npm/my-npm-registry/我怎样才能做到这一点?
我目前正在开发一个 GitHub CI,它可以使用 JIB buildpack 自动构建容器。
我想知道是否可以结合 JIB 和 GraalVM 来构建本机解决方案?
jobs:
publish:
runs-on: ubuntu-latest
steps:
- name: downcase IMAGE_NAME
run: |
echo "IMAGE_NAME=${GITHUB_REPOSITORY,,}" >>${GITHUB_ENV}
- uses: actions/checkout@v2
- name: Set up JDK 17
uses: actions/setup-java@v2
with:
distribution: 'adopt'
java-version: 17
- name: Buil JIB container and publish to GitHub Packages
run: |
mvn compile com.google.cloud.tools:jib-maven-plugin:3.1.4:build \
-Djib.to.image=${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:${{ github.event.release.tag_name }} \
-Djib.to.auth.username=${{ env.USERNAME }} \
-Djib.to.auth.password=${{ env.PASSWORD }} \
-Djib.from.image=azul/zulu-openjdk:17-jre-headless
Run Code Online (Sandbox Code Playgroud)
您认为在这种情况下可以将 JIB …
我正在编写一个 GitHub Action,将我的应用程序部署到 GCP 的“Cloud Run”服务。
name: Deploy to production
on:
push:
branches:
- master
env:
PROJECT_ID: XXX
SERVICE_NAME: XXX
RUN_REGION: XXX
PACKAGE_VERSION : XXX
permissions:
contents: read
id-token: write
jobs:
deployment-job:
runs-on: ubuntu-latest
environment: production
steps:
- uses: actions/checkout@v2
- name: Authenticate to Google Cloud
uses: google-github-actions/auth@v0
with:
workload_identity_provider: XXX
service_account: XXX
- name: Deploy to Cloud Run
uses: google-github-actions/deploy-cloudrun@v0
with:
service: ${{ env.SERVICE_NAME }}
source: gcr.io/${{ env.PROJECT_ID }}/${{ env.SERVICE_NAME }}:${{ env.PACKAGE_VERSION }} # equivalent to "gcloud builds submit …Run Code Online (Sandbox Code Playgroud) github-actions ×10
github ×3
yaml ×2
artifactory ×1
devops ×1
graalvm ×1
jib ×1
node.js ×1
npm ×1
npm-registry ×1
nuxt.js ×1
nvm ×1
pull-request ×1
release ×1
ubuntu ×1
vue.js ×1
workflow ×1