Skip to content

Commit db2b080

Browse files
authored
Merge branch 'master' into issue-1419
2 parents af56ee0 + 1817d33 commit db2b080

File tree

17 files changed

+473
-29
lines changed

17 files changed

+473
-29
lines changed

.github/workflows/maven-v1-pulls.yml

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -13,17 +13,17 @@ jobs:
1313
java: [ 8 ]
1414

1515
steps:
16-
- uses: actions/checkout@v2
17-
- name: Set up Java
18-
uses: actions/setup-java@v1
19-
with:
20-
java-version: ${{ matrix.java }}
21-
- name: Cache local Maven repository
22-
uses: actions/cache@v2
23-
with:
24-
path: ~/.m2/repository
25-
key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}
26-
restore-keys: |
27-
${{ runner.os }}-maven-
28-
- name: Build with Maven
29-
run: mvn -B -Dhttps.protocols=TLSv1.2 verify --file pom.xml
16+
- uses: actions/checkout@v2
17+
- name: Set up Java
18+
uses: actions/setup-java@v1
19+
with:
20+
java-version: ${{ matrix.java }}
21+
- name: Cache local Maven repository
22+
uses: actions/cache@v2
23+
with:
24+
path: ~/.m2/repository
25+
key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}
26+
restore-keys: |
27+
${{ runner.os }}-maven-
28+
- name: Build with Maven
29+
run: mvn -B verify --file pom.xml

.github/workflows/maven-v1.yml

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,6 @@ name: Build Test Deploy v1
33
on:
44
push:
55
branches: [ "v1" ]
6-
pull_request:
7-
branches: [ "v1" ]
86

97
jobs:
108
build:
@@ -20,7 +18,7 @@ jobs:
2018
uses: actions/setup-java@v1
2119
with:
2220
java-version: ${{ matrix.java }}
23-
server-id: sonatype-nexus-snapshots
21+
server-id: ossrh
2422
server-username: MAVEN_USERNAME
2523
server-password: MAVEN_PASSWORD
2624
- name: Cache local Maven repository
@@ -30,14 +28,14 @@ jobs:
3028
key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}
3129
restore-keys: |
3230
${{ runner.os }}-maven-
33-
- name: Build with Maven
31+
- name: Build with Maven, Deploy snapshot to maven central
3432
run: |
35-
mvn -B -Dhttps.protocols=TLSv1.2 verify --file pom.xml
33+
mvn --no-transfer-progress -B verify --file pom.xml
3634
export MY_POM_VERSION=`mvn -q -Dexec.executable="echo" -Dexec.args='${projects.version}' --non-recursive org.codehaus.mojo:exec-maven-plugin:1.3.1:exec`
3735
echo "POM VERSION" ${MY_POM_VERSION}
3836
if [[ $MY_POM_VERSION =~ ^.*SNAPSHOT$ ]];
3937
then
40-
mvn -B -Dhttps.protocols=TLSv1.2 clean deploy
38+
mvn --no-transfer-progress -B clean deploy
4139
else
4240
echo "not deploying release: " ${MY_POM_VERSION}
4341
fi
Lines changed: 85 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,85 @@
1+
name: Next Snapshot V1
2+
3+
on:
4+
workflow_dispatch:
5+
branches: ["v1"]
6+
7+
jobs:
8+
build:
9+
10+
runs-on: ubuntu-latest
11+
12+
steps:
13+
- uses: actions/checkout@v2
14+
- uses: tibdex/github-app-token@v1
15+
id: generate-token
16+
with:
17+
app_id: ${{ secrets.APP_ID }}
18+
private_key: ${{ secrets.APP_PRIVATE_KEY }}
19+
- name: Set up Python 2.7
20+
uses: actions/setup-python@v2
21+
with:
22+
python-version: 2.7
23+
- name: Set up Java 8
24+
uses: actions/setup-java@v1
25+
with:
26+
java-version: 8
27+
server-id: ossrh
28+
server-username: MAVEN_USERNAME
29+
server-password: MAVEN_PASSWORD
30+
- name: Cache local Maven repository
31+
uses: actions/cache@v2
32+
with:
33+
path: ~/.m2/repository
34+
key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}
35+
restore-keys: |
36+
${{ runner.os }}-maven-
37+
- name: Run pre release script
38+
id: preRelease
39+
run: |
40+
# export GPG_TTY=$(tty)
41+
export MY_POM_VERSION=`mvn -q -Dexec.executable="echo" -Dexec.args='${projects.version}' --non-recursive org.codehaus.mojo:exec-maven-plugin:1.3.1:exec`
42+
if [[ $MY_POM_VERSION =~ ^.*SNAPSHOT$ ]];
43+
then
44+
echo "not releasing snapshot version: " ${MY_POM_VERSION}
45+
echo "::set-env name=RELEASE_OK::no"
46+
else
47+
. ./CI/pre-release-v1.sh
48+
echo "::set-env name=RELEASE_OK::yes"
49+
fi
50+
echo "::set-env name=SC_VERSION::$SC_VERSION"
51+
echo "::set-env name=SC_NEXT_VERSION::$SC_NEXT_VERSION"
52+
echo "::set-env name=SC_LAST_RELEASE::$SC_LAST_RELEASE"
53+
- name: configure git user email
54+
run: |
55+
git config --global user.email "[email protected]"
56+
git config --global user.name "GitHub Action"
57+
git config --global hub.protocol https
58+
git remote set-url origin https://\${{ secrets.GITHUB_TOKEN }}:[email protected]/swagger-api/swagger-parser.git
59+
- name: Checkout v1
60+
uses: actions/checkout@v2
61+
with:
62+
ref: "v1"
63+
fetch-depth: 0
64+
- name: Run next snapshot script
65+
id: postRelease
66+
if: env.RELEASE_OK == 'yes'
67+
run: |
68+
. ./CI/post-nextsnap-v1.sh
69+
- name: Create Next Snapshot Pull Request
70+
uses: peter-evans/create-pull-request@v2
71+
if: env.RELEASE_OK == 'yes'
72+
with:
73+
token: ${{ steps.generate-token.outputs.token }}
74+
commit-message: bump snapshot ${{ env.SC_NEXT_VERSION }}-SNAPSHOT
75+
title: 'bump snapshot ${{ env.SC_NEXT_VERSION }}-SNAPSHOT'
76+
branch: bump-snap-${{ env.SC_NEXT_VERSION }}-SNAPSHOT
77+
78+
env:
79+
MAVEN_USERNAME: ${{ secrets.OSSRH_USERNAME }}
80+
MAVEN_PASSWORD: ${{ secrets.OSSRH_TOKEN }}
81+
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
82+
SC_VERSION:
83+
SC_NEXT_VERSION:
84+
GPG_PRIVATE_KEY: ${{ secrets.OSSRH_GPG_PRIVATE_KEY }}
85+
GPG_PASSPHRASE: ${{ secrets.OSSRH_GPG_PRIVATE_PASSPHRASE }}
Lines changed: 65 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,65 @@
1+
name: Prepare Release V1
2+
3+
on:
4+
workflow_dispatch:
5+
branches: ["v1"]
6+
7+
jobs:
8+
build:
9+
10+
runs-on: ubuntu-latest
11+
12+
steps:
13+
- uses: actions/checkout@v2
14+
- uses: tibdex/github-app-token@v1
15+
id: generate-token
16+
with:
17+
app_id: ${{ secrets.APP_ID }}
18+
private_key: ${{ secrets.APP_PRIVATE_KEY }}
19+
- name: Set up Python 2.7
20+
uses: actions/setup-python@v2
21+
with:
22+
python-version: 2.7
23+
- name: Set up Java 8
24+
uses: actions/setup-java@v1
25+
with:
26+
java-version: 8
27+
server-id: ossrh
28+
server-username: MAVEN_USERNAME
29+
server-password: MAVEN_PASSWORD
30+
- name: Cache local Maven repository
31+
uses: actions/cache@v2
32+
with:
33+
path: ~/.m2/repository
34+
key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}
35+
restore-keys: |
36+
${{ runner.os }}-maven-
37+
- name: Run prepare release script
38+
id: prepare-release
39+
run: |
40+
export MY_POM_VERSION=`mvn -q -Dexec.executable="echo" -Dexec.args='${projects.version}' --non-recursive org.codehaus.mojo:exec-maven-plugin:1.3.1:exec`
41+
if [[ $MY_POM_VERSION =~ ^.*SNAPSHOT$ ]];
42+
then
43+
. ./CI/prepare-release-v1.sh
44+
echo "::set-env name=PREPARE_RELEASE_OK::yes"
45+
else
46+
echo "not preparing release for release version: " ${MY_POM_VERSION}
47+
echo "::set-env name=PREPARE_RELEASE_OK::no"
48+
fi
49+
echo "::set-env name=SC_VERSION::$SC_VERSION"
50+
echo "::set-env name=SC_NEXT_VERSION::$SC_NEXT_VERSION"
51+
- name: Create Prepare Release Pull Request
52+
uses: peter-evans/create-pull-request@v2
53+
if: env.PREPARE_RELEASE_OK == 'yes'
54+
with:
55+
token: ${{ steps.generate-token.outputs.token }}
56+
commit-message: prepare release ${{ env.SC_VERSION }}
57+
title: 'prepare release ${{ env.SC_VERSION }}'
58+
branch: prepare-release-${{ env.SC_VERSION }}
59+
env:
60+
MAVEN_USERNAME: ${{ secrets.OSSRH_USERNAME }}
61+
MAVEN_PASSWORD: ${{ secrets.OSSRH_TOKEN }}
62+
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
63+
SC_VERSION:
64+
SC_NEXT_VERSION:
65+

.github/workflows/release-v1.yml

Lines changed: 89 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,89 @@
1+
name: Release V1
2+
3+
on:
4+
workflow_dispatch:
5+
branches: ["v1"]
6+
7+
jobs:
8+
build:
9+
10+
runs-on: ubuntu-latest
11+
12+
steps:
13+
- uses: actions/checkout@v2
14+
- uses: tibdex/github-app-token@v1
15+
id: generate-token
16+
with:
17+
app_id: ${{ secrets.APP_ID }}
18+
private_key: ${{ secrets.APP_PRIVATE_KEY }}
19+
- name: Set up Python 2.7
20+
uses: actions/setup-python@v2
21+
with:
22+
python-version: 2.7
23+
- name: Set up Java 8
24+
uses: actions/setup-java@v1
25+
with:
26+
java-version: 8
27+
server-id: ossrh
28+
server-username: MAVEN_USERNAME
29+
server-password: MAVEN_PASSWORD
30+
- name: Cache local Maven repository
31+
uses: actions/cache@v2
32+
with:
33+
path: ~/.m2/repository
34+
key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}
35+
restore-keys: |
36+
${{ runner.os }}-maven-
37+
- name: Run pre release script
38+
id: preRelease
39+
run: |
40+
# export GPG_TTY=$(tty)
41+
export MY_POM_VERSION=`mvn -q -Dexec.executable="echo" -Dexec.args='${projects.version}' --non-recursive org.codehaus.mojo:exec-maven-plugin:1.3.1:exec`
42+
if [[ $MY_POM_VERSION =~ ^.*SNAPSHOT$ ]];
43+
then
44+
echo "not releasing snapshot version: " ${MY_POM_VERSION}
45+
echo "::set-env name=RELEASE_OK::no"
46+
else
47+
. ./CI/pre-release-v1.sh
48+
echo "::set-env name=RELEASE_OK::yes"
49+
fi
50+
echo "::set-env name=SC_VERSION::$SC_VERSION"
51+
echo "::set-env name=SC_NEXT_VERSION::$SC_NEXT_VERSION"
52+
echo "::set-env name=SC_LAST_RELEASE::$SC_LAST_RELEASE"
53+
- name: configure git user email
54+
run: |
55+
git config --global user.email "[email protected]"
56+
git config --global user.name "GitHub Action"
57+
git config --global hub.protocol https
58+
git remote set-url origin https://\${{ secrets.GITHUB_TOKEN }}:[email protected]/swagger-api/swagger-parser.git
59+
- name: Run maven deploy/release (action-maven-publish)
60+
uses: samuelmeuli/action-maven-publish@v1
61+
if: env.RELEASE_OK == 'yes'
62+
with:
63+
gpg_private_key: ${{ secrets.OSSRH_GPG_PRIVATE_KEY }}
64+
gpg_passphrase: ${{ secrets.OSSRH_GPG_PRIVATE_PASSPHRASE }}
65+
nexus_username: ${{ secrets.OSSRH_USERNAME }}
66+
nexus_password: ${{ secrets.OSSRH_TOKEN }}
67+
maven_profiles: "release"
68+
- name: Run post release script
69+
id: postRelease
70+
if: env.RELEASE_OK == 'yes'
71+
run: |
72+
. ./CI/post-release-v1.sh
73+
- name: Create Next Snapshot Pull Request
74+
uses: peter-evans/create-pull-request@v2
75+
if: env.RELEASE_OK == 'yes'
76+
with:
77+
token: ${{ steps.generate-token.outputs.token }}
78+
commit-message: bump snapshot ${{ env.SC_NEXT_VERSION }}-SNAPSHOT
79+
title: 'bump snapshot ${{ env.SC_NEXT_VERSION }}-SNAPSHOT'
80+
branch: bump-snap-${{ env.SC_NEXT_VERSION }}-SNAPSHOT
81+
82+
env:
83+
MAVEN_USERNAME: ${{ secrets.OSSRH_USERNAME }}
84+
MAVEN_PASSWORD: ${{ secrets.OSSRH_TOKEN }}
85+
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
86+
SC_VERSION:
87+
SC_NEXT_VERSION:
88+
GPG_PRIVATE_KEY: ${{ secrets.OSSRH_GPG_PRIVATE_KEY }}
89+
GPG_PASSPHRASE: ${{ secrets.OSSRH_GPG_PRIVATE_PASSPHRASE }}

CI/CI.md

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,6 @@ be more maintainable e.g. implementing a custom JavaScript or Docker Container G
2424
1. execute `prepare-release.yml` / `Prepare Release` for `master` branch
2525
1. check and merge the Prepare Release PR pushed by previous step. Delete the branch
2626
1. execute `release.yml` / `Release` for `master` branch
27-
1. check and merge the `v1` branch Readme update PR pushed by previous step. Delete the branch
2827
1. check and merge the next snaphot PR pushed by previous step. Delete the branch
2928

3029
#### Prepare Release

CI/lastReleaseV1.py

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
#!/usr/bin/python
2+
3+
import ghApiClient
4+
5+
def getLastReleaseTag():
6+
content = ghApiClient.readUrl('repos/swagger-api/swagger-parser/releases')
7+
for l in content:
8+
draft = l["draft"]
9+
tag = l["tag_name"]
10+
if str(draft) != 'True' and tag.startswith("v1"):
11+
return tag[1:]
12+
13+
# main
14+
def main():
15+
result = getLastReleaseTag()
16+
print result
17+
18+
# here start main
19+
main()

CI/post-nextsnap-v1.sh

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
#!/bin/bash
2+
3+
CUR=$(pwd)
4+
TMPDIR="$(dirname -- "${0}")"
5+
6+
SC_RELEASE_TAG="v$SC_VERSION"
7+
8+
#####################
9+
### update the version to next snapshot in maven project with set version
10+
#####################
11+
mvn versions:set -DnewVersion="${SC_NEXT_VERSION}-SNAPSHOT"
12+
mvn versions:commit

CI/post-release-v1.sh

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
#!/bin/bash
2+
3+
CUR=$(pwd)
4+
TMPDIR="$(dirname -- "${0}")"
5+
6+
SC_RELEASE_TAG="v$SC_VERSION"
7+
8+
#####################
9+
### publish pre-prepared release (tag is created)
10+
#####################
11+
$CUR/CI/publishReleaseV1.py "$SC_RELEASE_TAG"
12+
13+
#####################
14+
### update the version to next snapshot in maven project with set version
15+
#####################
16+
mvn versions:set -DnewVersion="${SC_NEXT_VERSION}-SNAPSHOT"
17+
mvn versions:commit

CI/pre-release-v1.sh

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
#!/bin/bash
2+
3+
CUR=$(pwd)
4+
5+
export SC_VERSION=`mvn -q -Dexec.executable="echo" -Dexec.args='${parsedVersion.majorVersion}.${parsedVersion.minorVersion}.${parsedVersion.incrementalVersion}' --non-recursive build-helper:parse-version org.codehaus.mojo:exec-maven-plugin:1.3.1:exec`
6+
export SC_NEXT_VERSION=`mvn -q -Dexec.executable="echo" -Dexec.args='${parsedVersion.majorVersion}.${parsedVersion.minorVersion}.${parsedVersion.nextIncrementalVersion}' --non-recursive build-helper:parse-version org.codehaus.mojo:exec-maven-plugin:1.3.1:exec`
7+
SC_QUALIFIER=`mvn -q -Dexec.executable="echo" -Dexec.args='${parsedVersion.qualifier}' --non-recursive build-helper:parse-version org.codehaus.mojo:exec-maven-plugin:1.3.1:exec`
8+
#SC_LAST_RELEASE=`mvn -q -Dexec.executable="echo" -Dexec.args='${releasedVersion.version}' --non-recursive org.codehaus.mojo:build-helper-maven-plugin:3.2.0:released-version org.codehaus.mojo:exec-maven-plugin:1.3.1:exec`
9+
SC_LAST_RELEASE=`$CUR/CI/lastReleaseV1.py`
10+
11+
12+
SC_RELEASE_TAG="v$SC_VERSION"
13+
14+
15+
#####################
16+
### build and test maven ###
17+
#####################
18+
mvn --no-transfer-progress -B install --file pom.xml

0 commit comments

Comments
 (0)