From 297a002e8c9344da70ff3cac162b13cf4f716989 Mon Sep 17 00:00:00 2001 From: "Ball, Nware" Date: Tue, 10 Jan 2023 10:14:32 +0700 Subject: [PATCH 1/2] Migrate to Github actions --- .github/workflows/maven.yml | 47 ++++++++++++++++++++++++++++ .travis.yml | 21 ------------- maybe-release.sh | 62 ++++++++++++++++--------------------- settings.xml | 14 --------- 4 files changed, 74 insertions(+), 70 deletions(-) create mode 100644 .github/workflows/maven.yml delete mode 100644 .travis.yml delete mode 100644 settings.xml diff --git a/.github/workflows/maven.yml b/.github/workflows/maven.yml new file mode 100644 index 0000000..a831959 --- /dev/null +++ b/.github/workflows/maven.yml @@ -0,0 +1,47 @@ +# This workflow will build a Java project with Maven, and cache/restore any dependencies to improve the workflow execution time +# For more information see: https://help.github.com/actions/language-and-framework-guides/building-and-testing-java-with-maven + +name: Java CI with Maven + +on: + workflow_dispatch: + push: + pull_request: + branches: [ "master", "develop" ] + +jobs: + build_maven: + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v3 + - name: Set up JDK 11 + uses: actions/setup-java@v3 + with: + distribution: 'temurin' + java-version: '11' + server-id: sonatype-nexus-staging # Value of the distributionManagement/repository/id field of the pom.xml + server-username: CI_DEPLOY_USERNAME # env variable for username in deploy + server-password: CI_DEPLOY_PASSWORD # env variable for token in deploy + gpg-private-key: ${{ secrets.CI_GPG_PRIVATE_KEY }} # Value of the GPG private key to import + gpg-passphrase: CI_GPG_PASSPHRASE # env variable for GPG private key passphrase + + - name: Install, unit test, integration test + run: mvn install -Dmaven.javadoc.skip=true -B -V + + - name: Release to maven central + if: github.ref_name == 'master' && github.event_name != 'pull_request' && github.repository == 'swisspost/vertx-rest-mirror' + run: | + curl -s get.sdkman.io | bash + source "$HOME/.sdkman/bin/sdkman-init.sh" + sdk install groovy 3.0.8 + + chmod +x ./maybe-release.sh + ./maybe-release.sh + env: + CI_DEPLOY_USERNAME: ${{ secrets.CI_DEPLOY_USERNAME }} + CI_DEPLOY_PASSWORD: ${{ secrets.CI_DEPLOY_PASSWORD }} + CI_GPG_PASSPHRASE: ${{ secrets.CI_GPG_PASSPHRASE }} + + - name: After release + run: bash <(curl -s https://codecov.io/bash) diff --git a/.travis.yml b/.travis.yml deleted file mode 100644 index a65386d..0000000 --- a/.travis.yml +++ /dev/null @@ -1,21 +0,0 @@ -language: java -dist: bionic -jdk: - - oraclejdk11 -before_install: - - chmod +x maybe-release.sh - # install groovy - - curl -s get.sdkman.io | bash - - source "$HOME/.sdkman/bin/sdkman-init.sh" - - sdk install groovy 3.0.8 -install: - - mvn clean install -Dmaven.javadoc.skip=true -B -V -before_script: - - git config --global user.email "swisspush@post.ch" - - git config --global user.name "Travis-CI" -script: - - git config credential.helper "store --file=.git/credentials" - - echo "https://${GH_TOKEN}:@github.com" > .git/credentials - - ./maybe-release.sh -after_success: - - bash <(curl -s https://codecov.io/bash) diff --git a/maybe-release.sh b/maybe-release.sh index ecf1a5a..601421e 100644 --- a/maybe-release.sh +++ b/maybe-release.sh @@ -1,42 +1,34 @@ #!/bin/bash set -ev -if [ "$TRAVIS_BRANCH" == "master" ] && [ "$TRAVIS_PULL_REQUEST" == "false" ] && [ "$TRAVIS_REPO_SLUG" == "swisspush/vertx-rest-mirror" ] +git fetch +git reset --hard +groovy staging.groovy drop +rc=$? +if [ $rc -ne 0 ] then - git reset --hard - git clean -fd - git checkout master - echo 'Master checked out' - groovy staging.groovy drop + echo 'problem when trying to drop, ignored' +fi +echo 'starting a new nexus repository ...' +OUTPUT=$(groovy staging.groovy start) +echo "repository Id: $OUTPUT" +mvn -B -Prelease jgitflow:release-start jgitflow:release-finish -DrepositoryId=${OUTPUT} +rc=$? +if [ $rc -eq 0 ] +then + groovy staging.groovy close ${OUTPUT} + groovy staging.groovy promote ${OUTPUT} rc=$? if [ $rc -ne 0 ] then - echo 'problem when trying to drop, ignored' - fi - echo 'starting a new nexus repository ...' - OUTPUT=$(groovy staging.groovy start) - echo "repository Id: $OUTPUT" - mvn -B -Prelease -PpublicRepos jgitflow:release-start jgitflow:release-finish --settings settings.xml -DrepositoryId=${OUTPUT} - rc=$? - if [ $rc -eq 0 ] - then - groovy staging.groovy close ${OUTPUT} - groovy staging.groovy promote ${OUTPUT} - rc=$? - if [ $rc -ne 0 ] - then - echo 'Release failed, cannot promote stage' - exit rc - fi - echo 'Release done, will push' - git tag - git push --tags - git checkout develop - git push origin develop - exit 0 + echo 'Release failed, cannot promote stage' + exit $rc fi - echo 'Release failed' - exit rc -else - echo 'Release skipped' - exit 0 -fi \ No newline at end of file + echo 'Release done, will push' + git tag + git push --tags + git checkout develop + git push origin develop + exit 0 +fi +echo 'Release failed' +exit $rc diff --git a/settings.xml b/settings.xml deleted file mode 100644 index b4954b8..0000000 --- a/settings.xml +++ /dev/null @@ -1,14 +0,0 @@ - - - - sonatype-nexus-staging - ${env.CI_DEPLOY_USERNAME} - ${env.CI_DEPLOY_PASSWORD} - - - gpg.passphrase - ${env.CI_PGP_PASSWORD} - - - \ No newline at end of file From f5f9331a5d7a8c8cbab1d98f541c12f10ad2deef Mon Sep 17 00:00:00 2001 From: "Ball, Nware" Date: Tue, 10 Jan 2023 11:09:38 +0700 Subject: [PATCH 2/2] Migrate to Github actions --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index dcf83f1..8b06488 100644 --- a/pom.xml +++ b/pom.xml @@ -2,7 +2,7 @@ 4.0.0 org.swisspush rest-mirror - 3.0.1-SNAPSHOT + 3.0.3-SNAPSHOT rest-mirror A verticle that mirrors resources, which are provided as zip into a rest storage.