个人访问令牌
secrets.GITHUB_TOKEN
是默认定义的,但只能足以部署到当前存储库。
要使其在多个存储库间工作,您需要在以下位置定义新的个人访问令牌:
选择范围为write:packages
,所有repo
范围应自动为您选择。
![enter image description here](https://istack.dev59.com/e2hla.webp)
存储库/组织机密
接下来,在组织或需要发布软件包的每个存储库中定义一个机密。
给它起一个名字(即DEPLOY_GITHUB_TOKEN
),并将其值设置为在前一步中创建的个人访问令牌。
![enter image description here](https://istack.dev59.com/tyUqh.webp)
存储库机密在存储库设置
> 秘密
中定义。组织也有类似的区域。
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配置文件
在下面的配置文件示例中,我像@Danny Varod的回答中建议的那样,配置了分发管理以使用外部/共享库vlingo/vlingo-platform
。
<!-- 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
注:该文介绍如何将Maven包发布到单个GitHub存储库,可以参考示例进行操作。