diff --git a/.github/release-files-spec.json b/.github/release-files-spec.json new file mode 100644 index 0000000000..4ceba9f6d9 --- /dev/null +++ b/.github/release-files-spec.json @@ -0,0 +1,28 @@ +{ + "files": [ + { + "aql": { + "items.find": { + "$and": [ + { + "@build.name": "${buildname}", + "@build.number": "${buildnumber}", + "path": {"$match": "org*"} + }, + { + "$or": [ + { + "name": {"$match": "*.pom"} + }, + { + "name": {"$match": "*.jar"} + } + ] + } + ] + } + }, + "target": "nexus/" + } + ] +} diff --git a/.github/workflows/central-sync-close.yml b/.github/workflows/central-sync-close.yml new file mode 100644 index 0000000000..a00aebd4d4 --- /dev/null +++ b/.github/workflows/central-sync-close.yml @@ -0,0 +1,23 @@ +name: Central Sync Close + +on: + workflow_dispatch: + inputs: + stagedRepositoryId: + description: "Staged repository id" + required: true + +jobs: + build: + runs-on: ubuntu-latest + steps: + + # Request close promotion repo + - uses: jvalkeal/nexus-sync@v0 + with: + url: ${{ secrets.OSSRH_URL }} + username: ${{ secrets.OSSRH_S01_TOKEN_USERNAME }} + password: ${{ secrets.OSSRH_S01_TOKEN_PASSWORD }} + staging-profile-name: ${{ secrets.OSSRH_STAGING_PROFILE_NAME }} + staging-repo-id: ${{ github.event.inputs.stagedRepositoryId }} + close: true diff --git a/.github/workflows/central-sync-create.yml b/.github/workflows/central-sync-create.yml new file mode 100644 index 0000000000..662834f9f0 --- /dev/null +++ b/.github/workflows/central-sync-create.yml @@ -0,0 +1,58 @@ +name: Central Sync Create + +on: + workflow_dispatch: + inputs: + buildName: + description: "Artifactory build name" + required: true + buildNumber: + description: "Artifactory build number" + required: true + +jobs: + build: + runs-on: ubuntu-latest + steps: + + # to get spec file in .github + - uses: actions/checkout@v2 + + # Setup jfrog cli + - uses: jfrog/setup-jfrog-cli@v1 + with: + version: 1.43.2 + env: + JF_ARTIFACTORY_SPRING: ${{ secrets.JF_ARTIFACTORY_SPRING }} + + # Extract build id from input + - name: Extract Build Id + run: | + echo JFROG_CLI_BUILD_NAME=${{ github.event.inputs.buildName }} >> $GITHUB_ENV + echo JFROG_CLI_BUILD_NUMBER=${{ github.event.inputs.buildNumber }} >> $GITHUB_ENV + + # Download released files + - name: Download Release Files + run: | + jfrog rt download \ + --spec .github/release-files-spec.json \ + --spec-vars "buildname=$JFROG_CLI_BUILD_NAME;buildnumber=$JFROG_CLI_BUILD_NUMBER" + + # Create checksums, signatures and create staging repo on central and upload + - uses: jvalkeal/nexus-sync@v0 + id: nexus + with: + url: ${{ secrets.OSSRH_URL }} + username: ${{ secrets.OSSRH_S01_TOKEN_USERNAME }} + password: ${{ secrets.OSSRH_S01_TOKEN_PASSWORD }} + staging-profile-name: ${{ secrets.OSSRH_STAGING_PROFILE_NAME }} + create: true + upload: true + generate-checksums: true + pgp-sign: true + pgp-sign-passphrase: ${{ secrets.GPG_PASSPHRASE }} + pgp-sign-private-key: ${{ secrets.GPG_PRIVATE_KEY_WITH_HEADER }} + + # Print staging repo id + - name: Print Staging Repo Id + run: echo ${{ steps.nexus.outputs.staged-repository-id }} diff --git a/.github/workflows/central-sync-release.yml b/.github/workflows/central-sync-release.yml new file mode 100644 index 0000000000..abf2cb92f2 --- /dev/null +++ b/.github/workflows/central-sync-release.yml @@ -0,0 +1,23 @@ +name: Central Sync Release + +on: + workflow_dispatch: + inputs: + stagedRepositoryId: + description: "Staged repository id" + required: true + +jobs: + build: + runs-on: ubuntu-latest + steps: + + # Request release promotion repo + - uses: jvalkeal/nexus-sync@v0 + with: + url: ${{ secrets.OSSRH_URL }} + username: ${{ secrets.OSSRH_S01_TOKEN_USERNAME }} + password: ${{ secrets.OSSRH_S01_TOKEN_PASSWORD }} + staging-profile-name: ${{ secrets.OSSRH_STAGING_PROFILE_NAME }} + staging-repo-id: ${{ github.event.inputs.stagedRepositoryId }} + release: true