Skip to content

Commit

Permalink
Merge branch 'package-refactor'
Browse files Browse the repository at this point in the history
  • Loading branch information
ennioVisco committed Jul 11, 2023
2 parents 56b6a00 + 9693271 commit d319d89
Show file tree
Hide file tree
Showing 8 changed files with 259 additions and 73 deletions.
29 changes: 0 additions & 29 deletions .github/workflows/publish-java.yml

This file was deleted.

38 changes: 0 additions & 38 deletions .github/workflows/publish-python.yml

This file was deleted.

124 changes: 124 additions & 0 deletions .github/workflows/publish.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,124 @@
name: Publish on Github & Maven Central
on: [ push ]

jobs:
infer-version:
name: Computing a new version
runs-on: ubuntu-latest
outputs:
version: ${{ steps.nyx-infer.outputs.version }}
newRelease: ${{ 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-version:
if: needs.infer-version.outputs.newRelease == 'true'
name: Publishing a new version
runs-on: ubuntu-latest
needs: infer-version
steps:
- uses: actions/checkout@v3
with:
fetch-depth: 0
- name: Set up JDK 17
uses: actions/setup-java@v3
with:
java-version: 17
distribution: adopt
cache: gradle
- name: Run gradle publish
run: ./gradlew 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: 'webmonitor'
NYX_SERVICES_GITHUB_OPTIONS_REPOSITORY_OWNER: 'ennioVisco'
with:
command: 'publish'
configurationFile: 'build-logic/releases/.nyx.json'
resume: 'true'

publish-python:
runs-on: ubuntu-latest
needs: infer-version
permissions:
contents: read
packages: write
steps:
- uses: actions/checkout@v3

- name: Set up JDK 17
uses: actions/setup-java@v2
with:
java-version: '17'
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 :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: Updating README.md
runs-on: ubuntu-latest
needs: [ publish-version, 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
11 changes: 11 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,4 +9,15 @@ The tool supports two type of semantics (satisfaction), the Boolean and the quan
Choosing the Boolean semantics the tool returns a Boolean satisfaction signal, that tells at each time in each location if the trajectory satisfies or not the property, choosing instead the Quantitative semantics the tool returns a real-value signal that corresponds to the value of satisfaction of the property.
-->

### Usage as Maven package

To use it as a maven package, just include the following line in your `build.gradle.kts`:

```kts
implementation("io.github.moonlightsuite:moonlight-engine:0.2.0")
```

Check on [Maven Central](https://central.sonatype.com/artifact/io.github.moonlightsuite/moonlight-engine/) for alternative build tools (
e.g. Maven).

For more information, please visit our [Wiki](https://github.com/MoonLightSuite/MoonLight/wiki)
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,11 @@ plugins {
}

val projectVersion: String = try {
providers.gradleProperty("projectVersion").get()
val ver = providers.gradleProperty("projectVersion").get()
if (ver.contains("-")) {
println("WARNING: publishing snapshot version")
"${ver.split("-")[0]}-SNAPSHOT"
} else ver
} catch (e: IllegalStateException) {
println("ERROR - Unable to find version: ${e.message}")
"0.1.0-SNAPSHOT"
Expand Down
87 changes: 87 additions & 0 deletions build-logic/releases/.nyx.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,87 @@
{
"preset": "simple",
"changelog": {
"path": "build-logic/releases/CHANGELOG.md",
"template": "build-logic/releases/changelog.hbs",
"sections": {
":sparkles: Added": "^feat$",
":bug: Fixed": "^fix$",
":zap: Improved": "^perf$",
":hammer: Tooling": "^(build|ci)$",
":memo: Documentation": "^docs$"
},
"substitutions": {
"(?m)#([0-9]+)(?s)": "[#%s](https://github.com/enniovisco/webmonitor/issues/%s)"
}
},
"git": {
"remotes": {
"origin": {
"authenticationMethod": "USER_PASSWORD",
"user": "{{#environmentVariable}}GH_TOKEN{{/environmentVariable}}",
"password": "{{#environmentVariable}}GH_TOKEN{{/environmentVariable}}"
}
}
},
"initialVersion": "0.2.0",
"releasePrefix": "v",
"releaseTypes": {
"enabled": [
"mainline",
"internal"
],
"publicationServices": [
"github"
],
"remoteRepositories": [
"origin"
],
"items": {
"mainline": {
"collapseVersions": false,
"filterTags": "^({{configuration.releasePrefix}})?([0-9]\\d*)\\.([0-9]\\d*)\\.([0-9]\\d*)$",
"gitCommit": "false",
"gitCommitMessage": "Release version {{version}}",
"gitPush": "true",
"gitTag": "true",
"gitTagMessage": "Tag version {{version}}",
"matchBranches": "^(master|main)$",
"matchEnvironmentVariables": {
"CI": "^true$"
},
"matchWorkspaceStatus": "CLEAN",
"publish": "true",
"versionRangeFromBranchName": false
},
"internal": {
"collapseVersions": true,
"collapsedVersionQualifier": "beta",
"description": "{{#replace from=\"# Changelog\" to=\"\"}}{{#fileContent}}CHANGELOG.md{{/fileContent}}{{/replace}}",
"gitCommit": "false",
"gitPush": "false",
"gitTag": "false",
"publish": "true",
"identifiers": [
{
"position": "PRE_RELEASE",
"qualifier": "beta"
}
],
"versionRangeFromBranchName": false
}
}
},
"services": {
"github": {
"type": "GITHUB",
"options": {
"AUTHENTICATION_TOKEN": "{{#environmentVariable}}GH_TOKEN{{/environmentVariable}}",
"REPOSITORY_NAME": "webmonitor",
"REPOSITORY_OWNER": "enniovisco"
}
}
},
"summaryFile": "build-logic/releases/.nyx-summary.txt",
"stateFile": "build-logic/releases/.nyx-state.json",
"verbosity": "INFO"
}
23 changes: 23 additions & 0 deletions build-logic/releases/changelog.hbs
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
# Changelog

{{#releases}}
## {{name}} ({{date}})

{{#sections}}
### {{name}}

{{#commits}}
* [[{{#short5}}{{sha}}{{/short5}}](https://github.com/enniovisco/webmonitor/commit/{{sha}})] {{message.shortMessage}} ({{authorAction.identity.name}})

{{/commits}}
{{^commits}}
No changes.
{{/commits}}
{{/sections}}
{{^sections}}
No changes.
{{/sections}}
{{/releases}}
{{^releases}}
No releases.
{{/releases}}
14 changes: 9 additions & 5 deletions script/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -17,14 +17,18 @@ dependencies {
runtimeOnly("org.antlr:antlr4-runtime:4.8")
}

tasks.generateGrammarSource {
arguments.addAll(listOf("-visitor", "-long-messages"))
}

tasks.build {
dependsOn(tasks.generateGrammarSource)
}

//tasks.sourcesJar {
// dependsOn(tasks.generateGrammarSource)
//}
tasks.kotlinSourcesJar {
dependsOn(tasks.generateGrammarSource)
}

tasks.generateGrammarSource {
arguments.addAll(listOf("-visitor", "-long-messages"))
tasks.dokkaHtml {
dependsOn(tasks.generateGrammarSource)
}

0 comments on commit d319d89

Please sign in to comment.