个人访问令牌
secrets.GITHUB_TOKEN
默认情况下定义,但仅足以部署到当前存储库。
要使其跨存储库工作,您需要在以下位置定义新的个人访问令牌:
选择范围,应自动为您选择write:packages
所有范围。repo
存储库/组织机密
接下来,在您的组织或您需要从中发布包的每个存储库中定义一个秘密。
为其命名(即DEPLOY_GITHUB_TOKEN
)并将其值设置为在上一步中创建的个人访问令牌。
存储库机密在存储库Settings
>中定义Secrets
。该组织有一个类似的部分。
GitHub 动作
最后,确保将您的个人访问令牌作为名为GITHUB_TOKEN
.
在下面的示例中,它设置为DEPLOY_GITHUB_TOKEN
上一步中定义的密钥的值。
name: Build
on:
release:
types: [created]
jobs:
build:
name: Build & Deploy
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Set up JDK 1.8
uses: actions/setup-java@v1
with:
java-version: 1.8
- name: Build with Maven
run: mvn --batch-mode --update-snapshots install
- name: Deploy to GitHub
run: mvn --batch-mode -DskipTests -DuseGitHubPackages=true deploy
env:
GITHUB_TOKEN: ${{ secrets.DEPLOY_GITHUB_TOKEN }}
由于我为 GitHub 包存储库分发管理使用了专用的 Maven 配置文件,因此我还使用-DuseGitHubPackages=true
.
Maven 简介
在下面的配置文件示例中,我将分发管理配置为使用外部/共享存储库vlingo/vlingo-platform
,就像@Danny Varod 的回答中所建议的那样。
<!-- pom.xml -->
<project>
<!-- ... -->
<profiles>
<profile>
<id>github</id>
<activation>
<property>
<name>useGitHubPackages</name>
<value>true</value>
</property>
</activation>
<distributionManagement>
<repository>
<id>github</id>
<name>GitHub Packages</name>
<url>https://maven.pkg.github.com/vlingo/vlingo-platform</url>
</repository>
</distributionManagement>
</profile>
</profiles>
</project>
交叉发布自:https ://dev.to/jakub_zalas/how-to-publish-maven-packages-to-a-single-github-repository-3lkc
可以在 vlingo 存储库中找到一个工作示例:https ://github.com/vlingo/vlingo-platform/packages