From 4cb3501e01e62aae4e067c76eadc244e79318f9c Mon Sep 17 00:00:00 2001 From: Piotr Olaszewski Date: Fri, 11 Nov 2022 17:06:53 +0100 Subject: [PATCH 1/3] Introduce new release process based on GitHub Releases and Actions --- .dart_tool/.gitignore | 1 - .github/workflows/nexus.yml | 28 ---- .github/workflows/release.yml | 67 ++++++++ pom.xml | 12 +- pubspec.lock | 278 ---------------------------------- pubspec.yaml | 12 -- triggerRelease.dart | 80 ---------- 7 files changed, 72 insertions(+), 406 deletions(-) delete mode 100644 .dart_tool/.gitignore delete mode 100644 .github/workflows/nexus.yml create mode 100644 .github/workflows/release.yml delete mode 100644 pubspec.lock delete mode 100644 pubspec.yaml delete mode 100755 triggerRelease.dart diff --git a/.dart_tool/.gitignore b/.dart_tool/.gitignore deleted file mode 100644 index b5a718a86..000000000 --- a/.dart_tool/.gitignore +++ /dev/null @@ -1 +0,0 @@ -/package_config.json diff --git a/.github/workflows/nexus.yml b/.github/workflows/nexus.yml deleted file mode 100644 index b726b44e1..000000000 --- a/.github/workflows/nexus.yml +++ /dev/null @@ -1,28 +0,0 @@ -name: Release - -# Run workflow on tags -on: - push: - tags: - - '*' - -jobs: - release: - runs-on: ubuntu-18.04 - steps: - - name: Check out Git repository - uses: actions/checkout@v3 - - - name: Install Java and Maven - uses: actions/setup-java@v3.6.0 - with: - java-version: 1.8 - - - name: Release Maven package - uses: samuelmeuli/action-maven-publish@v1 - with: - gpg_private_key: ${{ secrets.gpg_private_key }} - gpg_passphrase: ${{ secrets.gpg_passphrase }} - nexus_username: ${{ secrets.nexus_username }} - nexus_password: ${{ secrets.nexus_password }} - diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml new file mode 100644 index 000000000..ce69bc4a3 --- /dev/null +++ b/.github/workflows/release.yml @@ -0,0 +1,67 @@ +name: Release + +on: + release: + types: [ published ] + +jobs: + publish: + runs-on: ubuntu-latest + steps: + - name: Check out code + uses: actions/checkout@v3.1.0 + + - name: Set up Java + uses: actions/setup-java@v3.6.0 + with: + java-version: 8 + distribution: temurin + server-id: ossrh + server-username: NEXUS_USERNAME + server-password: NEXUS_PASSWORD + gpg-passphrase: GPG_PASSPHRASE + gpg-private-key: ${{ secrets.GPG_PRIVATE_KEY }} + + - name: Set artifact version + run: ./mvnw --batch-mode versions:set -DgenerateBackupPoms=false -DnewVersion=${{ github.event.release.tag_name }} + + - name: Publish package + run: ./mvnw --batch-mode deploy + env: + NEXUS_USERNAME: ${{ secrets.NEXUS_USERNAME }} + NEXUS_PASSWORD: ${{ secrets.NEXUS_PASSWORD }} + GPG_PASSPHRASE: ${{ secrets.GPG_PASSPHRASE }} + + update-versions: + needs: [ publish ] + permissions: + contents: write # for peter-evans/create-pull-request to create branch + pull-requests: write # for peter-evans/create-pull-request to create a PR + runs-on: ubuntu-latest + steps: + - name: Check out code + uses: actions/checkout@v3.1.0 + with: + ref: master + fetch-depth: 0 + + - name: Update pom.xml version + run: ./mvnw --batch-mode versions:set -DgenerateBackupPoms=false -DnewVersion=${{ github.event.release.tag_name }} + + - name: Update Maven version in README.md + run: sed -i 's/.*<\/version>/${{ github.event.release.tag_name }}<\/version>/g' README.md + + - name: Show diff + run: git diff + + - name: Create Pull Request + uses: peter-evans/create-pull-request@v4.2.0 + with: + commit-message: Update versions to ${{ github.event.release.tag_name }} + title: Update versions to ${{ github.event.release.tag_name }} + body: Update versions to ${{ github.event.release.tag_name }} + branch: update-versions-${{ github.event.release.tag_name }} + delete-branch: true + labels: | + kind/documentation + meta/skip-changelog diff --git a/pom.xml b/pom.xml index 33fa25ffb..dc62168bb 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ org.asteriskjava asterisk-java - ${releaseVersion} + 3.34.0 Asterisk-Java The free Java library for Asterisk PBX integration. @@ -84,8 +84,6 @@ - 3.34.0 - UTF-8 @@ -310,13 +308,13 @@ - - ossrh - https://oss.sonatype.org/content/repositories/snapshots - ossrh https://oss.sonatype.org/service/local/staging/deploy/maven2 + + ossrh + https://oss.sonatype.org/content/repositories/snapshots + diff --git a/pubspec.lock b/pubspec.lock deleted file mode 100644 index c0143ffb5..000000000 --- a/pubspec.lock +++ /dev/null @@ -1,278 +0,0 @@ -# Generated by pub -# See https://dart.dev/tools/pub/glossary#lockfile -packages: - archive: - dependency: transitive - description: - name: archive - url: "https://pub.dartlang.org" - source: hosted - version: "3.1.2" - args: - dependency: "direct main" - description: - name: args - url: "https://pub.dartlang.org" - source: hosted - version: "2.0.0" - async: - dependency: transitive - description: - name: async - url: "https://pub.dartlang.org" - source: hosted - version: "2.5.0" - basic_utils: - dependency: transitive - description: - name: basic_utils - url: "https://pub.dartlang.org" - source: hosted - version: "3.0.0-nullsafety.1" - charcode: - dependency: transitive - description: - name: charcode - url: "https://pub.dartlang.org" - source: hosted - version: "1.2.0" - collection: - dependency: transitive - description: - name: collection - url: "https://pub.dartlang.org" - source: hosted - version: "1.15.0" - convert: - dependency: transitive - description: - name: convert - url: "https://pub.dartlang.org" - source: hosted - version: "3.0.0" - crypto: - dependency: transitive - description: - name: crypto - url: "https://pub.dartlang.org" - source: hosted - version: "3.0.0" - csv: - dependency: transitive - description: - name: csv - url: "https://pub.dartlang.org" - source: hosted - version: "5.0.0" - dcli: - dependency: "direct main" - description: - name: dcli - url: "https://pub.dartlang.org" - source: hosted - version: "0.51.5" - equatable: - dependency: transitive - description: - name: equatable - url: "https://pub.dartlang.org" - source: hosted - version: "2.0.0" - ffi: - dependency: transitive - description: - name: ffi - url: "https://pub.dartlang.org" - source: hosted - version: "1.0.0" - file: - dependency: transitive - description: - name: file - url: "https://pub.dartlang.org" - source: hosted - version: "6.1.0" - glob: - dependency: transitive - description: - name: glob - url: "https://pub.dartlang.org" - source: hosted - version: "2.0.0" - http: - dependency: transitive - description: - name: http - url: "https://pub.dartlang.org" - source: hosted - version: "0.13.0" - http_parser: - dependency: transitive - description: - name: http_parser - url: "https://pub.dartlang.org" - source: hosted - version: "4.0.0" - ini: - dependency: transitive - description: - name: ini - url: "https://pub.dartlang.org" - source: hosted - version: "2.1.0-beta" - json_annotation: - dependency: transitive - description: - name: json_annotation - url: "https://pub.dartlang.org" - source: hosted - version: "4.0.0" - logging: - dependency: transitive - description: - name: logging - url: "https://pub.dartlang.org" - source: hosted - version: "1.0.0" - matcher: - dependency: transitive - description: - name: matcher - url: "https://pub.dartlang.org" - source: hosted - version: "0.12.10" - meta: - dependency: transitive - description: - name: meta - url: "https://pub.dartlang.org" - source: hosted - version: "1.3.0" - path: - dependency: "direct main" - description: - name: path - url: "https://pub.dartlang.org" - source: hosted - version: "1.8.0" - pedantic: - dependency: transitive - description: - name: pedantic - url: "https://pub.dartlang.org" - source: hosted - version: "1.11.0" - pointycastle: - dependency: transitive - description: - name: pointycastle - url: "https://pub.dartlang.org" - source: hosted - version: "3.0.0-nullsafety.2" - posix: - dependency: transitive - description: - name: posix - url: "https://pub.dartlang.org" - source: hosted - version: "2.0.0" - pub_semver: - dependency: transitive - description: - name: pub_semver - url: "https://pub.dartlang.org" - source: hosted - version: "2.0.0" - pubspec2: - dependency: transitive - description: - name: pubspec2 - url: "https://pub.dartlang.org" - source: hosted - version: "1.0.0" - quiver: - dependency: transitive - description: - name: quiver - url: "https://pub.dartlang.org" - source: hosted - version: "3.0.0" - random_string: - dependency: transitive - description: - name: random_string - url: "https://pub.dartlang.org" - source: hosted - version: "2.2.0-nullsafety" - source_span: - dependency: transitive - description: - name: source_span - url: "https://pub.dartlang.org" - source: hosted - version: "1.8.1" - stack_trace: - dependency: transitive - description: - name: stack_trace - url: "https://pub.dartlang.org" - source: hosted - version: "1.10.0" - string_scanner: - dependency: transitive - description: - name: string_scanner - url: "https://pub.dartlang.org" - source: hosted - version: "1.1.0" - term_glyph: - dependency: transitive - description: - name: term_glyph - url: "https://pub.dartlang.org" - source: hosted - version: "1.2.0" - typed_data: - dependency: transitive - description: - name: typed_data - url: "https://pub.dartlang.org" - source: hosted - version: "1.3.0" - uri: - dependency: transitive - description: - name: uri - url: "https://pub.dartlang.org" - source: hosted - version: "1.0.0" - uuid: - dependency: transitive - description: - name: uuid - url: "https://pub.dartlang.org" - source: hosted - version: "3.0.1" - validators2: - dependency: transitive - description: - name: validators2 - url: "https://pub.dartlang.org" - source: hosted - version: "3.0.0" - vin_decoder: - dependency: transitive - description: - name: vin_decoder - url: "https://pub.dartlang.org" - source: hosted - version: "0.2.0-nullsafety" - yaml: - dependency: transitive - description: - name: yaml - url: "https://pub.dartlang.org" - source: hosted - version: "3.1.0" -sdks: - dart: ">=2.12.0 <3.0.0" diff --git a/pubspec.yaml b/pubspec.yaml deleted file mode 100644 index 23958b051..000000000 --- a/pubspec.yaml +++ /dev/null @@ -1,12 +0,0 @@ -name: asterisk_java_installer -version: 1.0.0 -environment: - sdk: '>=2.12.0 <3.0.0' -dependencies: - dcli: '>=0.51.1' - args: ^2.0.0 - path: ^1.8.0 - - - - diff --git a/triggerRelease.dart b/triggerRelease.dart deleted file mode 100755 index 8399effad..000000000 --- a/triggerRelease.dart +++ /dev/null @@ -1,80 +0,0 @@ -#! /usr/bin/env dcli - -import 'dart:io'; - -import 'package:dcli/dcli.dart'; - -/// comment - -void main() { - int major = 0; - int minor = 0; - int rev = 0; - var dir = dirname(Script.current.pathToScript); - print(dir); - read(join(dir, "pom.xml")).forEach((line) { - if (line.contains("")) { - line = line.replaceFirst("-SNAPSHOT", ""); - var parts = line.split("."); - if (parts.length != 3) { - exit(1); - } - major = int.parse(parts[0].split(">")[1]); - minor = int.parse(parts[1]); - rev = int.parse(parts[2].split("<")[0]); - } - }); - - var postFix = ""; - if (confirm("Is this a SNAPSHOT release (y/n)?")) { - postFix = "-SNAPSHOT"; - rev++; - } else { - rev = 0; - minor++; - } - - String version = "$major.$minor.$rev$postFix"; - - replacePomVersion(join(dir, "pom.xml"), version); - replaceReadMeVersion(join(dir, "README.md"), version); - - 'git pull'.run; - 'git add .'.run; - 'git commit -m "for version $version"'.run; - 'git tag -a $version -m "$version"'.run; - 'git push origin'.run; - 'git push origin tag $version'.run; -} - -void replaceReadMeVersion(String path, String version) { - var tmp = '$path.tmp'; - if (exists(tmp)) { - delete(tmp); - } - read(path).forEach((line) { - if (line.contains("")) { - line = " $version"; - } - tmp.append(line); - }); - move(path, '$path.bak'); - move(tmp, path); - delete('$path.bak'); -} - -void replacePomVersion(String path, String version) { - var tmp = '$path.tmp'; - if (exists(tmp)) { - delete(tmp); - } - read(path).forEach((line) { - if (line.contains("")) { - line = " $version"; - } - tmp.append(line); - }); - move(path, '$path.bak'); - move(tmp, path); - delete('$path.bak'); -} From b57c3d9aa0ff4321f5e629037802c12960540e1d Mon Sep 17 00:00:00 2001 From: Piotr Olaszewski Date: Fri, 11 Nov 2022 17:56:20 +0100 Subject: [PATCH 2/3] Introduce new release process based on GitHub Releases and Actions - use deploy profile --- .github/workflows/release.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index ce69bc4a3..931ed7014 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -26,7 +26,7 @@ jobs: run: ./mvnw --batch-mode versions:set -DgenerateBackupPoms=false -DnewVersion=${{ github.event.release.tag_name }} - name: Publish package - run: ./mvnw --batch-mode deploy + run: ./mvnw --batch-mode --activate-profiles=deploy deploy env: NEXUS_USERNAME: ${{ secrets.NEXUS_USERNAME }} NEXUS_PASSWORD: ${{ secrets.NEXUS_PASSWORD }} From 99570523d3e8f1d61c02fae5064e0b3327a6cb8f Mon Sep 17 00:00:00 2001 From: Piotr Olaszewski Date: Fri, 11 Nov 2022 18:22:06 +0100 Subject: [PATCH 3/3] Introduce new release process based on GitHub Releases and Actions - cleanup --- .github/workflows/release.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 931ed7014..7448d3566 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -23,7 +23,7 @@ jobs: gpg-private-key: ${{ secrets.GPG_PRIVATE_KEY }} - name: Set artifact version - run: ./mvnw --batch-mode versions:set -DgenerateBackupPoms=false -DnewVersion=${{ github.event.release.tag_name }} + run: ./mvnw --batch-mode --define=generateBackupPoms=false --define=newVersion=${{ github.event.release.tag_name }} versions:set - name: Publish package run: ./mvnw --batch-mode --activate-profiles=deploy deploy @@ -46,10 +46,10 @@ jobs: fetch-depth: 0 - name: Update pom.xml version - run: ./mvnw --batch-mode versions:set -DgenerateBackupPoms=false -DnewVersion=${{ github.event.release.tag_name }} + run: ./mvnw --batch-mode --define=generateBackupPoms=false --define=newVersion=${{ github.event.release.tag_name }} versions:set - name: Update Maven version in README.md - run: sed -i 's/.*<\/version>/${{ github.event.release.tag_name }}<\/version>/g' README.md + run: sed --in-place 's/.*<\/version>/${{ github.event.release.tag_name }}<\/version>/g' README.md - name: Show diff run: git diff