-
Notifications
You must be signed in to change notification settings - Fork 3
131 lines (121 loc) · 4.48 KB
/
publish.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
name: Publish on Github & Maven Central & Python
on:
workflow_run:
workflows: ["Build & Test & Analyze"]
types:
- completed
jobs:
infer-version:
name: Compute version
runs-on: ubuntu-latest
outputs:
version: ${{ steps.nyx-infer.outputs.version }}
newRelease: ${{ steps.nyx-infer.outputs.newVersion }}
newVersion: ${{ steps.nyx-infer.outputs.newRelease }}
steps:
- uses: actions/checkout@v3
with:
fetch-depth: 0
- name: Run nyx Infer
id: nyx-infer
uses: mooltiverse/nyx-github-action@main
with:
command: 'infer'
configurationFile: 'build-logic/releases/.nyx.json'
resume: 'true'
- name: Run nyx Make
uses: mooltiverse/nyx-github-action@main
with:
command: 'make'
configurationFile: 'build-logic/releases/.nyx.json'
resume: 'true'
publish-jvm:
if: needs.infer-version.outputs.newRelease == 'true' || needs.infer-version.outputs.newVersion == 'true'
name: Publish new release on Github & Maven Central
runs-on: ubuntu-latest
needs: infer-version
steps:
- uses: actions/checkout@v3
with:
fetch-depth: 0
- name: Set up JDK 21
uses: actions/setup-java@v3
with:
java-version: 21
distribution: adopt
cache: gradle
- name: Run gradle publish
run: ./gradlew --no-daemon publishAllPublicationsToMavenCentralRepository --no-configuration-cache
env:
ORG_GRADLE_PROJECT_projectVersion: ${{ needs.infer-version.outputs.version }}
ORG_GRADLE_PROJECT_signingInMemoryKeyPassword: ${{ secrets.SIGNING_PASSWORD }}
ORG_GRADLE_PROJECT_signingInMemoryKey: ${{ secrets.SIGNING_KEY }}
ORG_GRADLE_PROJECT_mavenCentralUsername: ${{ secrets.SONATYPE_USERNAME }}
ORG_GRADLE_PROJECT_mavenCentralPassword: ${{ secrets.SONATYPE_PASSWORD }}
- name: Nyx publish
uses: mooltiverse/nyx-github-action@main
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
NYX_RELEASE_TYPES_PUBLICATION_SERVICES: 'GITHUB'
NYX_SERVICES_GITHUB_NAME: 'GITHUB'
NYX_SERVICES_GITHUB_TYPE: 'GITHUB'
NYX_SERVICES_GITHUB_OPTIONS_AUTHENTICATION_TOKEN: "{{#environmentVariable}}GH_TOKEN{{/environmentVariable}}"
NYX_SERVICES_GITHUB_OPTIONS_REPOSITORY_NAME: 'moonlight'
NYX_SERVICES_GITHUB_OPTIONS_REPOSITORY_OWNER: 'moonlightsuite'
with:
command: 'publish'
configurationFile: 'build-logic/releases/.nyx.json'
resume: 'true'
publish-python:
if: needs.infer-version.outputs.newRelease == 'true' || needs.infer-version.outputs.newVersion == 'true'
name: Publish new release on PyPI
runs-on: ubuntu-latest
needs: infer-version
permissions:
contents: read
packages: write
steps:
- uses: actions/checkout@v3
- name: Set up JDK 21
uses: actions/setup-java@v2
with:
java-version: 21
distribution: adopt
cache: gradle
- name: Find and Replace
uses: jacobtomlinson/gha-find-replace@v3
with:
find: version = "\d+.\d+.\d+(-.+)?"
replace: version = "${{ needs.infer-version.outputs.version }}"
include: "python/pyproject.toml"
- name: Build releasable python package
run: ./gradlew --no-daemon :python:distribute
- uses: actions/setup-python@v4
with:
python-version: '3.8'
- run: pipx install poetry
- name: Publishing setup
run: poetry config pypi-token.pypi ${{ secrets.PYPI_API_TOKEN }}
working-directory: ./python
- name: Build & deploy package
run: poetry publish --build
working-directory: ./python
update-readme:
if: github.ref_name == 'master'
name: Update README.md
runs-on: ubuntu-latest
needs: [ publish-jvm, infer-version ]
steps:
- uses: actions/checkout@v3
- name: Find and Replace
uses: jacobtomlinson/gha-find-replace@v3
with:
find: io.github.moonlightsuite:moonlight-engine:\d+.\d+.\d+(-SNAPSHOT)?
replace: io.github.moonlightsuite:moonlight-engine:${{ needs.infer-version.outputs.version }}
include: "README.md"
- uses: fregante/setup-git-user@v2
- name: Push changes
run: |
git add README.md
git commit -m "Updated README.md instructions with new package version" || true
git push || true