我想将我的工作流程的并发限制为一次运行:
on:
pull_request:
paths:
- 'foo/**'
push:
paths:
- 'foo/**'
concurrency:
group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }}
cancel-in-progress: true
Run Code Online (Sandbox Code Playgroud)
但是,我发现 forpush head_ref是空的并且run_id始终是唯一的(如下所述: https: //docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#example-using- a-后备值)
如何创建一个在事件中保持不变的并发pull_request键push?
标题几乎是不言自明的,ssh 连接失败。我的物理服务器就在我旁边,它位于一个 VPN 下,该 VPN 在 ssh 之前连接。
看起来服务器拒绝用户/密码对,但它在我的计算机上的终端上运行得很好。
sshd_config 文件具有 PasswordAuthentication yes ,我使用service ssh restart重新启动了 ssh 服务。
这是工作流程:
name: Deployment
on:
push:
branches: [ master ]
jobs:
deploy:
runs-on: ubuntu-20.04
steps:
- name: Set up WireGuard
uses: egor-tensin/setup-wireguard@v1
with:
endpoint: ${{ secrets.WIREGUARD_ENDPOINT }}
endpoint_public_key: ${{ secrets.WIREGUARD_ENDPOINT_PUBLIC_KEY }}
ips: ${{ secrets.SERVER_IP }}
allowed_ips: ${{ secrets.WIREGUARD_ALLOWED_IPS }}
private_key: ${{ secrets.WIREGUARD_PRIVATE_KEY }}
- name: Deploy to server
# don't run locally
if: ${{ !env.ACT }}
uses: appleboy/ssh-action@master
with:
host: ${{ …Run Code Online (Sandbox Code Playgroud) .github/CODEOWNERS我有一个 GitHub 存储库,当首次打开拉取请求时,它会自动请求代码所有者团队(在 中定义)进行审查。我想要的是强制执行拉取请求必须得到代码所有者批准的要求,但在首次打开拉取请求时停止发送这些审查请求。即贡献者期望的流程是这样的:
open a pull request -> mess around, make changes -> manually request a review when ready (can't merge without codeowner approval)
这可以通过让贡献者打开草稿拉取请求并仅在它们实际准备好时将它们标记为准备好来解决,但贡献者似乎不想这样做。当它实际上还没有准备好接受审查时,贡献者通常会打开一个(非草稿)拉取请求(我想是习惯的力量)。
有没有一种方法可以做到这一点,并且不依赖贡献者使用草稿拉取请求?
正如标题所说,我正在尝试使用Github Actions将我的Laravel-Angular应用程序直接从Github部署到AWS EC2实例。
在我的应用程序中,需要在部署前构建3 个Angular 8+项目。哪里不需要构建laravel。
可用的解决方案建议使用AWS Elastic Beanstalk来部署代码。但是,如果要这样做,如何将弹性豆茎附加到现有实例还不够清楚。
有没有办法在不使用Elastic Beanstalk 的情况下将代码部署到AWS EC2?
这是我的Github Actions build.yml :
name: Build Develop Branch
on:
push:
branches: [ develop ]
pull_request:
branches: [ develop ]
jobs:
build:
runs-on: ubuntu-latest
strategy:
matrix:
node-version: [14.x]
steps:
- name: Code Checkout
uses: actions/checkout@v2
- name: Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v1
with:
node-version: ${{ matrix.node-version }}
- name: …Run Code Online (Sandbox Code Playgroud) 在阅读了触发工作流的事件的文档后,我想知道是否可以使用给定的标签名称运行工作流,例如 RFR 或 WIP。
我知道我们可以在拉取请求被标记时运行一个工作流,但是对于特定的标签名称没有更多内容:
on:
pull_request:
types: [labeled]
Run Code Online (Sandbox Code Playgroud)
以前有人这样做过吗?
假设我们正在使用 GitHub Actions 来构建和发布我们应用程序的容器映像。我将在这里选择 ASP.NET Core 作为应用程序的技术堆栈,尽管这无关紧要。
我想讨论两种不同的方法:
1.“构建外部”:在 GitHub Actions runner 中构建/编译应用程序,将输出复制到容器镜像中
例如,我们的 GitHub 操作工作流文件可能如下所示...
name: build-outside
on: [push]
jobs:
build:
runs-on: ubuntu-latest
steps:
- name: Checkout repo
uses: actions/checkout@v2
- name: Setup .NET Core
uses: actions/setup-dotnet@v1
- name: .NET Publish
run: dotnet publish --configuration Release --nologo -p:CI=true -o $GITHUB_WORKSPACE/buildOutput src
- name: Build and push Docker image
uses: docker/build-push-action@v1
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_ACCESS_TOKEN }}
repository: ${{ format('{0}/build-outside-test', secrets.DOCKERHUB_USERNAME) }}
tags: latest
Run Code Online (Sandbox Code Playgroud)
...有一个简单的 Dockerfile,如下所示:
FROM …Run Code Online (Sandbox Code Playgroud) 当我尝试npm从 GitHub 操作安装我的模块时,我收到以下错误:
npm ERR! 401 Unauthorized - GET https://npm.pkg.github.com/@xxxx%2fxxxx-analytics - Your request could not be authenticated by the GitHub Packages service. Please ensure your access token is valid and has the appropriate scopes configured.
Run Code Online (Sandbox Code Playgroud)
在您发表评论之前,我已经使用范围和访问令牌正确配置了 .npmrc,并且在本地安装私有包时一切正常。
这是我的 GitHub 工作流程操作:
name: JavaScript workflow
on: [push]
jobs:
test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v1
- name: Use Node.js 12.x
uses: actions/setup-node@v1
with:
node-version: '12.x'
- name: npmrc
run: cat .npmrc
- name: npm install
run: |
npm install
env: …Run Code Online (Sandbox Code Playgroud) 我们的 GitHub 组织是私有的,并且正在我们组织的多个不同存储库中开发多个私有 R 包。其中一些包依赖于我们私有组织中的其他存储库。如何设置 GitHub 操作以安装这些私有依赖项?我的描述文件目前包含:
Imports:
MyPackageDep
Remotes:
MyOrg/MyPackageDep
Run Code Online (Sandbox Code Playgroud)
我的 GitHub 操作的相关部分.yaml是:
- name: Install dependencies
run: |
remotes::install_deps(dependencies = TRUE)
remotes::install_cran("rcmdcheck")
shell: Rscript {0}
Run Code Online (Sandbox Code Playgroud)
我尝试通过将我的 PAT 存储在一个文件中来遵循这篇 SO 帖子的建议.Renviron。但这不仅仍然不起作用,我仍然不确定这将如何与包的多个贡献者一起工作。请问他们都只是需要建立自己的地方GITHUB_PAT自己.Renviron?
我还尝试通过在我的 GitHub 工作流程中包含以下内容来遵循此GitHub 问题的建议:
env:
GITHUB_PAT: ${{ secrets.GITHUB_TOKEN }}
Run Code Online (Sandbox Code Playgroud)
工作流仍然无法下载依赖项。
无论如何,GitHub Secrets 是否可以预先配置存储库以访问组织中的所有其他私有存储库?
直到昨天,Github Actions 还在我的存储库中工作。我没有在 .github/workflows/dev.yml 文件或 DockerFile 中做任何更改。
但是,突然在最近的推送中,我的 Github Actions 因错误而失败
设置、构建、发布和部署
Run Code Online (Sandbox Code Playgroud)Can't find 'action.yml', 'action.yaml' or 'Dockerfile' under '/home/runner/work/_actions/GoogleCloudPlatform/github-actions/master/setup-gcloud'. Did you forget to run actions/checkout before running your local action?
我可以知道如何解决这个问题吗
这是我正在使用的示例 .yml 文件。
name: Release to Development
on:
push:
branches:
- 'master'
jobs:
setup-build-publish-deploy:
name: Setup, Build, Publish, and Deploy
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v2
# Setup gcloud CLI
- uses: GoogleCloudPlatform/github-actions/setup-gcloud@master
with:
version: '270.0.0'
service_account_email: ${{ secrets.GCLOUD_EMAIL_DEV }}
service_account_key: ${{ secrets.GCLOUD_AUTH_DEV }}
# Configure …Run Code Online (Sandbox Code Playgroud) github-actions ×10
github ×9
docker ×2
yaml ×2
amazon-ec2 ×1
asp.net-core ×1
git ×1
npm ×1
pull-request ×1
r ×1
ssh ×1
yarnpkg ×1