我尝试使用 maven 创建一个非常简单的 JavaFX 项目,并使用 GitHub actions 从中构建一个 Linux 包。这是工作流程文件:
# This workflow will build a Java project with Maven
# For more information see: https://help.github.com/actions/language-and-framework-guides/building-and-testing-java-with-maven
name: Linux Client
on:
workflow_dispatch:
push:
branches: [ master ]
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Set up JDK 17
uses: actions/setup-java@v2
with:
java-version: '17'
distribution: 'temurin'
- name: Debug
run: mvn -version
- name: Build with Maven
run: sudo mvn -e -B install --file pom.xml
- name: Upload DEB …Run Code Online (Sandbox Code Playgroud) 我有以下工作流程大纲
jobs:
job1:
steps:
- name: step 1 of job 1
run: exit 1
job2:
if: failure()
steps:
- name: step 1 of job 2
run: echo "Hello World"
Run Code Online (Sandbox Code Playgroud)
我知道上面的运行。但是,它将我相应的状态检查标记为失败(红色)。有没有办法让动作执行成功?
我第一次尝试将node.js应用程序作为Azure应用程序服务部署到Azure,但在尝试运行该应用程序时遇到了这个顽固的错误,我还没有弄清楚如何排除故障。也许这里有人对我犯错误的地方有一些提示。
提供一些背景知识:
考虑到这一点,我的项目文件夹结构如下所示:
| main_folder
| .github
| workflows
workflow.yml
| server
| src
| dist
.env
index.ts
package-lock.json
package.json
tsconfig.json
| other_apps
.gitignore
README.md
Run Code Online (Sandbox Code Playgroud)
我有与index.ts运行应用程序相关的代码。其余相关文件如下所示:
tsconfig.json
| main_folder
| .github
| workflows
workflow.yml
| server
| src
| dist
.env
index.ts
package-lock.json
package.json
tsconfig.json
| other_apps
.gitignore
README.md
Run Code Online (Sandbox Code Playgroud)
package.json
{
"compilerOptions": {
"target": "ES2022",
"module": "CommonJS",
"lib": [
"ES2022", "DOM"
],
"strict": true,
"rootDir": ".",
"outDir": "./dist",
"sourceMap": true, …Run Code Online (Sandbox Code Playgroud) 我尝试过使用从https://docs.github.com/en/code-security/code-scanning/automatically-scanning-your-code-for-vulnerability-and-errors/configuring-中读到的 paths-ignore代码扫描,但它没有帮助,因为他们无法确定 git 操作运行时将分析哪些文件。我还发现了这篇文章https://josh-ops.com/posts/github-codeql-ignore-files/,其中讨论了使用 filter-sarif 操作,但它没有发布到市场。任何建议,将不胜感激
我有一个 GitHub 操作。它可以从分支、拉取请求或手动触发。我想实现以下目标:决不能有两个来自同一分支的操作并行运行,包括来自该分支的拉取请求。
我最好的想法是这样做(伪代码):
concurrency: {{ if github.head_ref is nonempty then github.head_ref else github.ref }}
Run Code Online (Sandbox Code Playgroud)
当作业由 PR 触发时,github.head_ref包含源分支的名称。当作业从分支触发时,github.ref包含分支名称。所以上面的表达式应该可以解决我的问题,除了它不是有效的 GitHub 操作代码,而且我无法弄清楚是否可以制作这样的表达式。
我可以编写一个表达式或表达式组合来实现上述目的吗?或者我可以通过其他方式解决我的根本问题吗?
github action 并发中是否可以添加 IF 条件?
我想要执行以下操作,但仅当分支名称不是时master
concurrency:
group: ${{ github.ref }}
cancel-in-progress: true
Run Code Online (Sandbox Code Playgroud)
我的yaml文件上的触发器如下:
name: Build
on:
push:
Run Code Online (Sandbox Code Playgroud)
这会在任何分支(主分支或功能分支)上推送时触发
如何创建只能手动启动的工作流程,同时需要指定与其一起工作的特定提交?
在我的工作流程中,我定义了一个步骤:
- name: Setup Spring Boot App
run: |
cd backend/MeetApp
POSTGRES_USERNAME=postgres POSTGRES_PASSWORD=postgres nohup ./gradlew bootRun
Run Code Online (Sandbox Code Playgroud)
无论我尝试什么,我都无法弄清楚如何启动我的 Spring Boot 过程,可能需要等待特定时间,然后转到下一步。
我正在尝试为我的项目 CI/CD Pipeline 运行本地服务器。当我启动服务器时,我收到“连接被拒绝”的消息。
我的项目是一个 fastAPI 应用程序,我正在尝试在 PR 上运行集成测试,以在合并代码之前验证应用程序。我尝试直接启动我的应用程序(gunicorn),构建一个 docker 映像并启动它......我尝试了很多东西。然后,我尝试运行一个简单的服务器而不是我的应用程序,并且......得到了相同的错误!
这是我的简单服务器工作流程:
on:
push:
branches:
- "develop"
jobs:
mylocalserver:
name: Run server
runs-on: ubuntu-latest
steps:
- name: Setup python
uses: actions/setup-python@v3
with:
python-version: 3.9
- name: Run server in background
run: |
python -V
python -m http.server 3000 &> /dev/null &
sudo lsof -i -P -n | grep LISTEN
curl http://localhost:3000
- name: Run server with console
run: |
python -m http.server 3000
Run Code Online (Sandbox Code Playgroud)
输出:
如果我使用控制台运行我的应用程序(gunicorn 中没有守护进程模式),服务器将启动并成功登录到工作流程中的控制台:
但这样我就不能再运行任何东西了(而且我必须取消工作流程)。有什么想法吗?谢谢你!
我的 Monorepo 目前由 Lerna.js 管理。除了我用来自动化 npm 发布的 GitHub 操作工作流程之外,一切都运行良好。
情况如下:
我更新packages/types-lib,然后更新packages/server新类型。完成后,我将所有内容推送到 GitHub,操作是碰撞packages/types-lib版本。但是,它不会更新作为依赖项packages/types-lib列出的内容。packages/server在本地,它可以工作,但在工作流程中不起作用......
这是我的工作流程代码:
name: Publish To NPM
on:
push:
branches:
- main
jobs:
publish:
runs-on: ubuntu-latest
steps:
- name: "Checkout"
uses: actions/checkout@v2
with:
fetch-depth: 0
- name: "Use NodeJS 16.14.2"
uses: actions/setup-node@v2
with:
node-version: '16.14.2'
- name: "Setup npm"
run: |
npm set @pastelabs:registry=https://registry.npmjs.org/
npm set "//registry.npmjs.org/:_authToken=${{ secrets.NPM_TOKEN }}"
- name: Install dependencies
run: |
yarn install --frozen-lockfile
yarn lerna …Run Code Online (Sandbox Code Playgroud)