mirror of
https://github.com/CarmJos/EasyPlugin.git
synced 2024-09-19 19:25:45 +00:00
134 lines
4.4 KiB
YAML
134 lines
4.4 KiB
YAML
# This workflow will build a Java project with Maven, and cache/restore any dependencies to improve the workflow execution time
|
|
# For more information see: https://help.github.com/actions/language-and-framework-guides/building-and-testing-java-with-maven
|
|
|
|
name: Deploy & Publish
|
|
|
|
on:
|
|
# 支持手动触发构建
|
|
workflow_dispatch:
|
|
release:
|
|
# 创建release的时候触发
|
|
types: [ published ]
|
|
|
|
jobs:
|
|
packages-deploy:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@v2
|
|
- name: "Set up JDK"
|
|
uses: actions/setup-java@v2
|
|
with:
|
|
java-version: '8'
|
|
distribution: 'adopt'
|
|
cache: maven
|
|
server-id: github
|
|
server-username: MAVEN_USERNAME
|
|
server-password: MAVEN_TOKEN
|
|
|
|
- name: "Maven Deploy"
|
|
run: mvn -B -Pgithub deploy --file pom.xml -DskipTests -Dgpg.skip
|
|
env:
|
|
MAVEN_USERNAME: ${{ github.repository_owner }}
|
|
MAVEN_TOKEN: ${{secrets.GITHUB_TOKEN}}
|
|
|
|
|
|
github-deploy:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@v2
|
|
- name: "Set up JDK"
|
|
uses: actions/setup-java@v2
|
|
with:
|
|
java-version: '8'
|
|
distribution: 'adopt'
|
|
cache: maven
|
|
- name: "Maven Deploy"
|
|
run: mvn -B -Plocal deploy --file pom.xml -DskipTests -Dgpg.skip
|
|
|
|
- name: "Copy artifacts"
|
|
run: |
|
|
rm -rf deploy
|
|
mkdir -vp deploy
|
|
cp -vrf $HOME/local-deploy/* deploy/
|
|
cp -vrf .documentation/repository/REPO-README.md deploy/README.md
|
|
|
|
- name: "Generate Javadoc"
|
|
run: mvn -B javadoc:aggregate --file pom.xml -DskipTests
|
|
|
|
- name: "Copy Javadoc"
|
|
run: |
|
|
rm -rf docs
|
|
mkdir -vp docs
|
|
cp -vrf target/site/apidocs/* docs/
|
|
cp -vrf .documentation/javadoc/JAVADOC-README.md docs/README.md
|
|
|
|
- name: "Generate Javadoc sitemap"
|
|
id: sitemap
|
|
uses: cicirello/generate-sitemap@v1
|
|
with:
|
|
base-url-path: https://${{ github.repository_owner }}.github.io/${{ github.event.repository.name }}
|
|
path-to-root: docs
|
|
|
|
- name: "Output Javadoc stats"
|
|
run: |
|
|
echo "sitemap-path = ${{ steps.sitemap.outputs.sitemap-path }}"
|
|
echo "url-count = ${{ steps.sitemap.outputs.url-count }}"
|
|
echo "excluded-count = ${{ steps.sitemap.outputs.excluded-count }}"
|
|
ls -l docs
|
|
|
|
- name: "Configure Git"
|
|
env:
|
|
DEPLOY_PRI: ${{secrets.DEPLOY_PRI}}
|
|
run: |
|
|
sudo timedatectl set-timezone "Asia/Shanghai"
|
|
mkdir -p ~/.ssh/
|
|
echo "$DEPLOY_PRI" > ~/.ssh/id_rsa
|
|
chmod 600 ~/.ssh/id_rsa
|
|
ssh-keyscan github.com >> ~/.ssh/known_hosts
|
|
git config --global user.name '${{ github.repository_owner }}'
|
|
git config --global user.email '${{ github.repository_owner }}@users.noreply.github.com'
|
|
|
|
- name: "Commit&Push repository files"
|
|
run: |
|
|
cd deploy
|
|
git init
|
|
git remote add origin git@github.com:${{ github.repository_owner }}/${{ github.event.repository.name }}.git
|
|
git checkout -b repo
|
|
git add -A
|
|
git commit -m "Maven project deployment."
|
|
git push origin HEAD:repo --force
|
|
|
|
- name: "Commit&Push API documentation"
|
|
run: |
|
|
cd docs
|
|
git init
|
|
git remote add origin git@github.com:${{ github.repository_owner }}/${{ github.event.repository.name }}.git
|
|
git checkout -b gh-pages
|
|
git add -A
|
|
git commit -m "API Document generated."
|
|
git push origin HEAD:gh-pages --force
|
|
|
|
central-deploy:
|
|
name: "Deploy Project (Central)"
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@v2
|
|
- name: "Set up JDK"
|
|
uses: actions/setup-java@v2
|
|
with:
|
|
java-version: '11'
|
|
distribution: 'adopt'
|
|
cache: maven
|
|
server-id: ossrh
|
|
server-username: MAVEN_USERNAME
|
|
server-password: MAVEN_PASSWORD
|
|
gpg-private-key: ${{ secrets.MAVEN_GPG_PRIVATE_KEY }} # Value of the GPG private key to import
|
|
gpg-passphrase: MAVEN_GPG_PASSPHRASE # env variable for GPG private key passphrase
|
|
|
|
- name: "Central Deploy"
|
|
run: mvn -B -Possrh deploy --file pom.xml -DskipTests
|
|
env:
|
|
MAVEN_USERNAME: ${{ secrets.OSSRH_USER }}
|
|
MAVEN_PASSWORD: ${{ secrets.OSSRH_PASS }}
|
|
MAVEN_GPG_PASSPHRASE: ${{ secrets.MAVEN_GPG_PASSPHRASE }}
|