如果有超过 100 个 flake8 错误,我想对 PR 发表评论,但它不会禁用合并按钮。
我的方法是这样的:
name: Flake8 Check
on: [pull_request]
jobs:
flake8:
name: Flake8 Check
runs-on: ubuntu-latest
steps:
- name: Check out code
uses: actions/checkout@v2
- name: Install Python
uses: actions/setup-python@v1
with:
python-version: 3.6
- name: Install dependency
run: pip install flake8
- name: Flake8
id: flake
run: echo "::set-output name=number::$(flake8 --config=tools/dev/.flake8 --count -qq)"
- name: comment PR
uses: unsplash/comment-on-pr@master
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
msg: "There are ${{ steps.flake.outputs.number }} Flake8 errors which is a …Run Code Online (Sandbox Code Playgroud) 我是 Github Actions 的新手。我有一个使用 node_modules 的项目。我想创建工件文件而不在 Github Actions 上包含 node_modules,因为使用 node_modules 需要一段时间才能创建和下载,因为文件大小。有没有办法做到这一点?
这似乎与此有关,但无法弄清楚如何。 https://github.com/actions/upload-artifact/issues/44
当子模块存储库更新时,我需要触发 github 操作。我正在构建一个具有多个依赖项目和一个父项目的多模块 Maven 应用程序。
当子项目被推送到时,父项目需要触发该操作。如果可能的话,我想选择执行哪些作业以限制每次项目的完全重建。
我有一个工作流程,deployment.yml如下所示:
name: Deployment
on:
push:
branches: [ production ]
jobs:
deploy:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: actions/setup-node@v1.1.0
with:
version: 10.x
- name: Install dependencies
run: |
composer install -o
yarn
- name: Build
run: yarn build:production
- name: Sync
env:
dest: 'user@server:/var/www/html/wp-content/themes/theme-name'
run: |
echo "${{secrets.DEPLOY_KEY}}" > deploy_key
chmod 600 ./deploy_key
rsync -chav --delete \
-e 'ssh -i ./deploy_key -o StrictHostKeyChecking=no' \
--exclude /deploy_key \
--exclude /.git/ \
--exclude /.github/ \
--exclude /node_modules/ \
./ …Run Code Online (Sandbox Code Playgroud) 在 GitHub Actions 工作流程中,我们多次尝试使用此命令获取由推送的提交更改的文件的文件名run: git diff-tree --no-commit-id --name-only -r ${{ github.sha }}。但它总是只返回以下日志,不给出文件名或带路径的文件名。请参见下图。
关于 Runner 类型: ubuntu-latest,它不是自托管运行器。
我正在编写一个 GitHub 操作,它接收一个名为fileusing @actions/corelibrary的必填输入字段。
const core = require("@actions/core");
async function run() {
try {
let file = core.getInput('file', {required: true});
// rest of my action ...
Run Code Online (Sandbox Code Playgroud)
我能够在本地运行它,但它按原样失败(未提供输入)。 是否有提供输入的内置方法(类似于 env-vars),以便我可以在本地运行和测试它?
Error: Input required and not supplied: file
at Object.getInput (.../node_modules/@actions/core/lib/core.js:78:15)
at run (.../src/main.js:6:25)
at Object.<anonymous> (.../src/main.js:40:5)
at Module._compile (internal/modules/cjs/loader.js:1137:30)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:1157:10)
at Module.load (internal/modules/cjs/loader.js:985:32)
at Function.Module._load (internal/modules/cjs/loader.js:878:14)
at Function.executeUserEntryPoint [as runMain] (internal/modules/run_main.js:71:12)
at internal/main/run_main_module.js:17:47
::error::Input required and not supplied: file
Run Code Online (Sandbox Code Playgroud) 首先,我创建了 SonarQube Server(社区版),并将 sonarQube 与 Github 集成在一起,用于扫描 GitHub 的代码。
然后,我在 GitHub 中创建了 action 来运行 sonarQube
.github/workflows/python-pull.yml
run: sonar-scanner
-Dsonar.host.url=${{ secrets.SONAR_URL }}
-Dsonar.login=${{ secrets.SONAR_TOKEN }}
-Dsonar.projectKey=${{ secrets.SONAR_PROJECT_KEY }}
-Dsonar.pullrequest.key=${{ github.event.number }}
-Dsonar.pullrequest.branch=${{ github.HEAD_REF }}
-Dsonar.pullrequest.base=${{ github.BASE_REF }}
-Dsonar.pullrequest.github.repository=${{ github.repository }}
-Dsonar.scm.provider=git
-Dsonar.java.binaries=/tmp
Run Code Online (Sandbox Code Playgroud)
GitHub 操作的结果 在此图像中,仅显示“所有检查均已通过”
每当我推送或拉入 GitHub 时,sonarQube 服务器都会显示所有错误、错误、漏洞等。就像这样
但我的要求是: 我希望代码的所有详细信息都显示在 Sonarqube Server 中显示的 GitHub 页面上(例如错误和错误)
还让我知道在 sonarQube 的社区版中可以吗?
我有一个工作流需要在推送或拉取请求上执行,除了最后一步将包推送到 NuGet(我不希望在拉取请求上发生这种情况,即使是掌握)。
如果工作流是从拉取请求触发的,如何防止发布 NuGet 步骤运行?
name: .NET Core
on:
push:
branches: [ master ]
pull_request:
branches: [ master ]
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Setup .NET Core
uses: actions/setup-dotnet@v1
with:
dotnet-version: 3.1.101
- name: Install dependencies
run: dotnet restore
- name: Build
run: dotnet build --configuration Release --no-restore
- name: Test
run: dotnet test --no-restore --verbosity normal
- name: Publish NuGet
uses: brandedoutcast/publish-nuget@v2.5.2
with:
PROJECT_FILE_PATH: "Orleans.Sagas/Orleans.Sagas.csproj"
NUGET_KEY: ${{secrets.NUGET_KEY}}
Run Code Online (Sandbox Code Playgroud) 现在我使用 github actions 作为我的项目 CI,我想在使用 github actions 构建我的项目时做一些单元测试。当我使用单元测试时,项目必须使用数据库,现在我的数据库有白名单,只有白名单中的IP才能连接我的数据库,但是现在在GitHub Actions中运行单元测试时,我不知道GitHub Actions的IP地址. 是否可以使用静态 ip 或任何其他方式来解决问题?我不希望任何 IP 可以连接我的数据库,它可能有安全问题。有什么建议吗?
github-actions ×10
github ×6
git ×2
firewall ×1
flake8 ×1
javascript ×1
python ×1
sonarqube ×1