Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
65 changes: 56 additions & 9 deletions .github/scripts/check_version/main.js
Original file line number Diff line number Diff line change
@@ -1,18 +1,65 @@
const path = require('path');
const properties = require('properties-file');
const Version = require('./version');
const readmeParser = require('./readme');

let masterPathToFile = path.resolve(__dirname, '../../../master-branch/gradle.properties');
let masterProperties = properties.propertiesToJson(masterPathToFile);
const {currentVersion, masterVersion} = comparePropertiesFiles();
if (currentVersion.compare(masterVersion) <= 0) {
throw new Error(`current gradle.properties version ${currentVersion} must be greater then master ${masterVersion}`);
}

let currentPathToFile = path.resolve(__dirname, '../../../gradle.properties');
let currentProperties = properties.propertiesToJson(currentPathToFile);
const {masterMavenVersion, masterGradleVersion, currentMavenVersion, currentGradleVersion} = compareReadmeFiles();
if (currentMavenVersion.compare(currentGradleVersion) !== 0) {
throw Error(`readme maven version ${currentMavenVersion} != readme gradle version ${currentGradleVersion}`);
}

let masterVersion = Version.parse(masterProperties.version)
let currentVersion = Version.parse(currentProperties.version)
if (currentVersion.compare(currentMavenVersion) !== 0) {
throw Error(`properties version ${currentVersion} != readme version ${currentMavenVersion}`);
}

if (currentVersion.compare(masterVersion) <= 0) {
throw new Error(`current version ${currentVersion} must be greater then master ${masterVersion}`);
if (currentMavenVersion.compare(masterMavenVersion) <= 0) {
throw new Error(`current readme maven version ${currentMavenVersion} must be greater then readme maven master ${masterMavenVersion}`);
}

if (currentGradleVersion.compare(masterGradleVersion) <= 0) {
throw new Error(`current readme gradle version ${currentGradleVersion} must be greater then readme gradle master ${masterGradleVersion}`);
}

console.log(`current version ${currentVersion} is greater then master ${masterVersion}, all is good :)`);

function comparePropertiesFiles() {
const masterPathToFile = path.resolve(__dirname, '../../../master-branch/gradle.properties');
const masterProperties = properties.propertiesToJson(masterPathToFile);

const currentPathToFile = path.resolve(__dirname, '../../../gradle.properties');
const currentProperties = properties.propertiesToJson(currentPathToFile);

const masterVersion = Version.parse(masterProperties.version);
const currentVersion = Version.parse(currentProperties.version);

return {
currentVersion,
masterVersion
};
}

console.log(`current version ${currentVersion} is greater then master ${masterVersion}, all is good :)`)
function compareReadmeFiles() {
const masterReadmePathToFile = path.resolve(__dirname, '../../../master-branch/README.md');
const {maven: masterMaven, gradle: masterGradle} = readmeParser(masterReadmePathToFile);

const masterMavenVersion = Version.parse(masterMaven);
const masterGradleVersion = Version.parse(masterGradle);

const currentReadmePathToFile = path.resolve(__dirname, '../../../README.md');
const {maven: currentMaven, gradle: currentGradle} = readmeParser(currentReadmePathToFile);

const currentMavenVersion = Version.parse(currentMaven);
const currentGradleVersion = Version.parse(currentGradle);

return {
masterMavenVersion,
masterGradleVersion,
currentMavenVersion,
currentGradleVersion
};
}
28 changes: 28 additions & 0 deletions .github/scripts/check_version/readme.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
const fs = require('fs');

module.exports = function parse(readmeFilePath) {
const data = fs.readFileSync(readmeFilePath, 'utf8');

return {
maven: mavenVersion(data),
gradle: gradleVersion(data)
}
}

function mavenVersion(fileContent) {
const result = fileContent.match(/<version>(.*?)<\/version>/);
if (!result[1]) {
throw new Error("not found maven version in readme file")
}

return result[1];
}

function gradleVersion(fileContent) {
const result = fileContent.match(/"com.spotty-server:core:(.*?)"/);
if (!result[1]) {
throw new Error("not found gradle version in readme file")
}

return result[1];
}
28 changes: 20 additions & 8 deletions .github/workflows/deployment.yml
Original file line number Diff line number Diff line change
@@ -1,19 +1,31 @@
name: Deploy to Maven Central Repository

on:
push:
pull_request:
branches: [ 'release-*' ]

env:
MAVEN_REPOSITORY_USERNAME: ${{ secrets.MAVEN_REPOSITORY_USERNAME }}
MAVEN_REPOSITORY_PASSWORD: ${{ secrets.MAVEN_REPOSITORY_PASSWORD }}
MAVEN_GPG_KEY: ${{ secrets.MAVEN_GPG_KEY }}
MAVEN_GPG_KEY_ID: ${{ secrets.MAVEN_GPG_KEY_ID }}
MAVEN_GPG_KEY_PASSWORD: ${{ secrets.MAVEN_GPG_KEY_PASSWORD }}

jobs:
check_version:
runs-on: ubuntu-20.04
steps:
- uses: actions/checkout@v3 # checkout current branch
- uses: actions/checkout@v3 # checkout master
with:
ref: master
path: master-branch
- name: check version install npm modules
run: cd ./.github/scripts/check_version && npm install
- name: check version
run: node ./.github/scripts/check_version/main.js

deploy:
needs: check_version
runs-on: ubuntu-20.04
env:
MAVEN_REPOSITORY_USERNAME: ${{ secrets.MAVEN_REPOSITORY_USERNAME }}
MAVEN_REPOSITORY_PASSWORD: ${{ secrets.MAVEN_REPOSITORY_PASSWORD }}
MAVEN_GPG_KEY: ${{ secrets.MAVEN_GPG_KEY }}
MAVEN_GPG_KEY_PASSWORD: ${{ secrets.MAVEN_GPG_KEY_PASSWORD }}
steps:
- uses: actions/checkout@v3
- name: Set up JDK 8
Expand Down
19 changes: 2 additions & 17 deletions .github/workflows/gradle.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ name: Java CI with Gradle

on:
pull_request:
branches-ignore: [ 'release-*' ]
push:
branches: [ master ]

Expand Down Expand Up @@ -29,20 +30,4 @@ jobs:
with:
name: test-report
path: server/build/reports
retention-days: 1

check_version:
if: false # disabled for now
# if: ${{ github.ref_name != 'master' }}
needs: build
runs-on: ubuntu-20.04
steps:
- uses: actions/checkout@v3 # checkout current branch
- uses: actions/checkout@v3 # checkout master
with:
ref: master
path: master-branch
- name: check version install npm modules
run: cd ./.github/scripts/check_version && npm install
- name: check version
run: node ./.github/scripts/check_version/main.js
retention-days: 1