我设置了一个 GitHub 组织,其中有两个私有存储库:库和应用程序。我已成功为库存储库配置 GitHub 操作,以创建 NuGet 包并将其推送到nuget.pkg.github.com. 我将库包添加为应用程序项目的依赖项,并且可以使用配置的个人访问令牌在本地获取这些包。我现在正在 GitHub Action 上工作,以在 App 项目上构建和运行单元测试。
我在工作流程中添加了一个步骤来添加 NuGet 包源
- name: Set package source
run: dotnet nuget add source --username USERNAME --password ${{ secrets.GITHUB_TOKEN }} --store-password-in-clear-text --name github "https://nuget.pkg.github.com/REDACTED/index.json"
Run Code Online (Sandbox Code Playgroud)
这与推送包时使用的行完全相同,但是当我dotnet restore稍后到达该步骤时,出现以下错误:
/home/runner/work/App/App/App.Services/App.Services.csproj : error NU1101:
Unable to find package Library. No packages exist with this id in source(s): github, nuget.org [/home/runner/work/App/App/App.sln]
Run Code Online (Sandbox Code Playgroud)
我知道可以通过向应用程序存储库的秘密添加新的个人访问令牌来解决此问题,但如果可能的话,为了安全和管理的好处,我更愿意依赖 GITHUB_TOKEN 。
根据 GitHub 的说法,安装由 GitHub Packages 托管的包需要使用 GITHUB_TOKEN 进行最少的配置。并且默认情况下,GITHUB_TOKEN 具有对packages 的读写权限。
我已经编写了一个Swift 包,并希望将Codecov集成为我的 CI 的一部分(使用Github Actions设置)。
这是我的.yml文件:
name: Swift
on:
push:
branches: [ "main" ]
pull_request:
branches: [ "main" ]
jobs:
build:
runs-on: macos-latest
steps:
- uses: actions/checkout@v3
- name: Build
run: swift build -v
- name: Run tests
run: swift test -v --enable-code-coverage
- name: Upload to Codecov
uses: codecov/codecov-action@v3.1.0
Run Code Online (Sandbox Code Playgroud)
问题是Codecov无法处理由xcodebuild或swift命令生成的报告文件。这是文档。
Codecov 建议使用其他第三方工具(例如Slather)将报告的文件转换为预期格式(.xml、.json等),但Slather与Swift Packages …
code-coverage github swift-package-manager codecov github-actions
我有一个 GitHub Action,它使用默认的 Microsoft 模板将 ASP.Net Core 应用程序构建到 Azure 应用服务。
在操作的顶部,您可以声明一些环境变量。我将这些设置如下:
name: Build and deploy ASP.Net Core app to an Azure Web App
env:
AZURE_WEBAPP_NAME: (redacted) # set this to the name of your Azure Web App
AZURE_WEBAPP_PACKAGE_PATH: '.' # set this to the path to your web app project, defaults to the repository root
DOTNET_VERSION: '3.0' # set this to the .NET Core version to use
Run Code Online (Sandbox Code Playgroud)
我的问题是根文件夹不包含 .csproj 或 .sln 文件。所以这一行是不正确的:AZURE_WEBAPP_PACKAGE_PATH: '.'
我尝试将其更改为AZURE_WEBAPP_PACKAGE_PATH: './FolderName/FolderName'(以及许多其他变体),这是 .csproj 文件所在的位置,但是由于以下错误,构建仍然失败: …
name: test if conditions
name: test if conditions
on:
push:
branches: [master, test]
env:
TEST_BRANCH: "test"
EMPTY_VALUE: ""
jobs:
test-conditions:
runs-on: ubuntu-latest
steps:
- name: simple evaluation on test
run: echo "runs"
Run Code Online (Sandbox Code Playgroud)
#eg) for test branch => runs-on: ubuntu-latest
for master branch => runs-on: ['self-hosted', 'products', 'latest']
Run Code Online (Sandbox Code Playgroud)
是否可以在同一工作流程中动态加载运行?
开始为我们的主要分支设置分支保护规则,目前启用了以下选项:
合并前需要拉取请求
合并前需要对话解决
但是我注意到在 PR 中有一个选项“无需等待满足要求即可合并(绕过分支保护)”:
有没有办法为所有用户禁用此选项?我确实看到了“允许指定的参与者绕过所需的拉取请求”的选项,但实际上并不是同一件事。
提前致谢!
我正在尝试使用 pandoc 将推送到我的存储库的 markdown 文件转换为 pdf。但是,不确定如何将输出保存到我的存储库中。
这是我的代码:
name: pandoc
on: push
jobs:
convert_via_pandoc:
runs-on: ubuntu-22.04
steps:
- uses: actions/checkout@v2
- name: convert md to pdf
uses: docker://pandoc/latex:2.9
with:
entrypoint: /bin/sh
run: |
cd markdown-files;
for file in $(ls ./ |grep *.md); do
pandoc $file -o ${file:0:-2}pdf;
done
Run Code Online (Sandbox Code Playgroud) 我想在推送一些git tag后启动AWS Amplify 构建。有没有办法以这种方式触发构建?
就像我们可以通过 Github 工作流程一样,我们在其中指定将触发特定作业的事件。
任何建议,将不胜感激。谢谢 :)
以下软件包具有未满足的依赖关系: winehq-stable :依赖: wine-stable (= 7.0.0.0~focal-1) 但不会安装 E: 无法纠正问题,您持有损坏的软件包。
我使用的是ubuntu-20.04
sudo dpkg --add-architecture i386
sudo wget -qO- https://dl.winehq.org/wine-builds/winehq.key | sudo apt-key add -
sudo apt-add-repository 'deb https://dl.winehq.org/wine-builds/ubuntu/ focal main'
sudo apt update
sudo apt -y install --install-recommends winehq-stable
Run Code Online (Sandbox Code Playgroud) 我有一个可重用的工作流程,用于构建 Docker 映像并将其推送到 ECR。
工作流的输入之一用于指定 docker build 命令的参数。这是可重用工作流程中的命令:
docker build -t $ECR_REGISTRY/$ECR_REPOSITORY:$IMAGE_TAG ${{ inputs.DOCKER_BUILD_ARGS }} .
Run Code Online (Sandbox Code Playgroud)
在某些情况下,我需要 DOCKER_BUILD_ARGS 来包含机密,例如:
secrets:
AWS_ACCESS_KEY: ${{ secrets.AWS_ACCESS_KEY }}
AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
uses: XXXXX/.github/workflows/DockerBuildPushECR.yml@main
with:
ECR_REGISTRY: XXXXXX
ECR_REPOSITORY: XXXXX
DOCKER_BUILD_ARGS: "--build-arg PASSWORD=${{ secrets.PASSWORD }}"
Run Code Online (Sandbox Code Playgroud)
GitHub 抱怨工作流程无效:“无法识别的命名值:‘秘密’”,因为它只需要秘密部分中的秘密。
我无法将它作为秘密传递,因为可重用工作流程不需要这个秘密,我只是希望它成为字符串的一部分......
无法使用 env,因为它无法与可重用工作流程结合使用
我怎样才能让这个场景发挥作用?
github-actions ×10
github ×5
aws-amplify ×1
bitbucket ×1
codecov ×1
git ×1
github-actions-self-hosted-runners ×1
nuget ×1
ubuntu-22.04 ×1
wine ×1