Skip to content

Commit ebd2342

Browse files
lazer-devAlex Danilenko
andauthored
deployment check version (#46)
Co-authored-by: Alex Danilenko <[email protected]>
1 parent 67874d4 commit ebd2342

File tree

4 files changed

+106
-34
lines changed

4 files changed

+106
-34
lines changed
Lines changed: 56 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,65 @@
11
const path = require('path');
22
const properties = require('properties-file');
33
const Version = require('./version');
4+
const readmeParser = require('./readme');
45

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

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

11-
let masterVersion = Version.parse(masterProperties.version)
12-
let currentVersion = Version.parse(currentProperties.version)
16+
if (currentVersion.compare(currentMavenVersion) !== 0) {
17+
throw Error(`properties version ${currentVersion} != readme version ${currentMavenVersion}`);
18+
}
1319

14-
if (currentVersion.compare(masterVersion) <= 0) {
15-
throw new Error(`current version ${currentVersion} must be greater then master ${masterVersion}`);
20+
if (currentMavenVersion.compare(masterMavenVersion) <= 0) {
21+
throw new Error(`current readme maven version ${currentMavenVersion} must be greater then readme maven master ${masterMavenVersion}`);
22+
}
23+
24+
if (currentGradleVersion.compare(masterGradleVersion) <= 0) {
25+
throw new Error(`current readme gradle version ${currentGradleVersion} must be greater then readme gradle master ${masterGradleVersion}`);
26+
}
27+
28+
console.log(`current version ${currentVersion} is greater then master ${masterVersion}, all is good :)`);
29+
30+
function comparePropertiesFiles() {
31+
const masterPathToFile = path.resolve(__dirname, '../../../master-branch/gradle.properties');
32+
const masterProperties = properties.propertiesToJson(masterPathToFile);
33+
34+
const currentPathToFile = path.resolve(__dirname, '../../../gradle.properties');
35+
const currentProperties = properties.propertiesToJson(currentPathToFile);
36+
37+
const masterVersion = Version.parse(masterProperties.version);
38+
const currentVersion = Version.parse(currentProperties.version);
39+
40+
return {
41+
currentVersion,
42+
masterVersion
43+
};
1644
}
1745

18-
console.log(`current version ${currentVersion} is greater then master ${masterVersion}, all is good :)`)
46+
function compareReadmeFiles() {
47+
const masterReadmePathToFile = path.resolve(__dirname, '../../../master-branch/README.md');
48+
const {maven: masterMaven, gradle: masterGradle} = readmeParser(masterReadmePathToFile);
49+
50+
const masterMavenVersion = Version.parse(masterMaven);
51+
const masterGradleVersion = Version.parse(masterGradle);
52+
53+
const currentReadmePathToFile = path.resolve(__dirname, '../../../README.md');
54+
const {maven: currentMaven, gradle: currentGradle} = readmeParser(currentReadmePathToFile);
55+
56+
const currentMavenVersion = Version.parse(currentMaven);
57+
const currentGradleVersion = Version.parse(currentGradle);
58+
59+
return {
60+
masterMavenVersion,
61+
masterGradleVersion,
62+
currentMavenVersion,
63+
currentGradleVersion
64+
};
65+
}
Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
const fs = require('fs');
2+
3+
module.exports = function parse(readmeFilePath) {
4+
const data = fs.readFileSync(readmeFilePath, 'utf8');
5+
6+
return {
7+
maven: mavenVersion(data),
8+
gradle: gradleVersion(data)
9+
}
10+
}
11+
12+
function mavenVersion(fileContent) {
13+
const result = fileContent.match(/<version>(.*?)<\/version>/);
14+
if (!result[1]) {
15+
throw new Error("not found maven version in readme file")
16+
}
17+
18+
return result[1];
19+
}
20+
21+
function gradleVersion(fileContent) {
22+
const result = fileContent.match(/"com.spotty-server:core:(.*?)"/);
23+
if (!result[1]) {
24+
throw new Error("not found gradle version in readme file")
25+
}
26+
27+
return result[1];
28+
}

.github/workflows/deployment.yml

Lines changed: 20 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,31 @@
11
name: Deploy to Maven Central Repository
22

33
on:
4-
push:
4+
pull_request:
55
branches: [ 'release-*' ]
66

7-
env:
8-
MAVEN_REPOSITORY_USERNAME: ${{ secrets.MAVEN_REPOSITORY_USERNAME }}
9-
MAVEN_REPOSITORY_PASSWORD: ${{ secrets.MAVEN_REPOSITORY_PASSWORD }}
10-
MAVEN_GPG_KEY: ${{ secrets.MAVEN_GPG_KEY }}
11-
MAVEN_GPG_KEY_ID: ${{ secrets.MAVEN_GPG_KEY_ID }}
12-
MAVEN_GPG_KEY_PASSWORD: ${{ secrets.MAVEN_GPG_KEY_PASSWORD }}
13-
147
jobs:
8+
check_version:
9+
runs-on: ubuntu-20.04
10+
steps:
11+
- uses: actions/checkout@v3 # checkout current branch
12+
- uses: actions/checkout@v3 # checkout master
13+
with:
14+
ref: master
15+
path: master-branch
16+
- name: check version install npm modules
17+
run: cd ./.github/scripts/check_version && npm install
18+
- name: check version
19+
run: node ./.github/scripts/check_version/main.js
20+
1521
deploy:
22+
needs: check_version
1623
runs-on: ubuntu-20.04
24+
env:
25+
MAVEN_REPOSITORY_USERNAME: ${{ secrets.MAVEN_REPOSITORY_USERNAME }}
26+
MAVEN_REPOSITORY_PASSWORD: ${{ secrets.MAVEN_REPOSITORY_PASSWORD }}
27+
MAVEN_GPG_KEY: ${{ secrets.MAVEN_GPG_KEY }}
28+
MAVEN_GPG_KEY_PASSWORD: ${{ secrets.MAVEN_GPG_KEY_PASSWORD }}
1729
steps:
1830
- uses: actions/checkout@v3
1931
- name: Set up JDK 8

.github/workflows/gradle.yml

Lines changed: 2 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ name: Java CI with Gradle
22

33
on:
44
pull_request:
5+
branches-ignore: [ 'release-*' ]
56
push:
67
branches: [ master ]
78

@@ -29,20 +30,4 @@ jobs:
2930
with:
3031
name: test-report
3132
path: server/build/reports
32-
retention-days: 1
33-
34-
check_version:
35-
if: false # disabled for now
36-
# if: ${{ github.ref_name != 'master' }}
37-
needs: build
38-
runs-on: ubuntu-20.04
39-
steps:
40-
- uses: actions/checkout@v3 # checkout current branch
41-
- uses: actions/checkout@v3 # checkout master
42-
with:
43-
ref: master
44-
path: master-branch
45-
- name: check version install npm modules
46-
run: cd ./.github/scripts/check_version && npm install
47-
- name: check version
48-
run: node ./.github/scripts/check_version/main.js
33+
retention-days: 1

0 commit comments

Comments
 (0)