You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@opendal.apache.org by ti...@apache.org on 2023/06/24 07:13:06 UTC
[incubator-opendal] branch main updated: ci(bindings/java): auto release snapshot (#2521)
This is an automated email from the ASF dual-hosted git repository.
tison pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/incubator-opendal.git
The following commit(s) were added to refs/heads/main by this push:
new be3957d89 ci(bindings/java): auto release snapshot (#2521)
be3957d89 is described below
commit be3957d892ad54c550e53e8ab4f13d8ed3316709
Author: tison <wa...@gmail.com>
AuthorDate: Sat Jun 24 15:13:02 2023 +0800
ci(bindings/java): auto release snapshot (#2521)
Signed-off-by: tison <wa...@gmail.com>
Co-authored-by: Xuanwo <gi...@xuanwo.io>
---
.github/workflows/bindings_java.yml | 126 ++++++++++++++++++++++++++++++++++++
1 file changed, 126 insertions(+)
diff --git a/.github/workflows/bindings_java.yml b/.github/workflows/bindings_java.yml
index 07bc9271e..fbcfd42e8 100644
--- a/.github/workflows/bindings_java.yml
+++ b/.github/workflows/bindings_java.yml
@@ -30,6 +30,8 @@ on:
- "core/**"
- "bindings/java/**"
- ".github/workflows/bindings_java.yml"
+ schedule:
+ - cron: '30 1 * * 1'
workflow_dispatch:
concurrency:
@@ -67,3 +69,127 @@ jobs:
- name: Build and test
working-directory: bindings/java
run: mvn clean verify
+
+ stage-snapshot:
+ runs-on: ${{ matrix.os }}
+ if: github.event_name == 'push' || !github.event.pull_request.head.repo.fork
+ strategy:
+ matrix:
+ include:
+ - os: ubuntu-latest
+ classifier: linux-x86_64
+ - os: windows-latest
+ classifier: windows-x86_64
+ - os: macos-latest
+ classifier: osx-x86_64
+ - os: macos-latest
+ classifier: osx-aarch_64
+ steps:
+ - uses: actions/checkout@v3
+
+ - name: Load secret
+ id: op-load-secret
+ uses: 1password/load-secrets-action@v1
+ with:
+ export-env: true
+ env:
+ OP_SERVICE_ACCOUNT_TOKEN: ${{ secrets.OP_SERVICE_ACCOUNT_TOKEN }}
+ MAVEN_GPG_PRIVATE_KEY: op://services/maven/gpg_private_key
+ MAVEN_GPG_PASSPHRASE: op://services/maven/gpg_passphrase
+
+ - name: Set up JDK 8
+ uses: actions/setup-java@v3
+ with:
+ distribution: 'temurin'
+ java-version: '8'
+ cache: 'maven'
+ gpg-private-key: ${{ env.MAVEN_GPG_PRIVATE_KEY }}
+ gpg-passphrase: ${{ env.MAVEN_GPG_PASSPHRASE }}
+ - uses: actions/setup-python@v4
+ with:
+ python-version: '3.10'
+
+ - name: Local staging
+ working-directory: bindings/java
+ run: mvn -Papache-release package verify org.sonatype.plugins:nexus-staging-maven-plugin:deploy -DjniClassifier=${{ matrix.classifier }} -DskipTests=true -DaltStagingDirectory=local-staging -DskipRemoteStaging=true
+ env:
+ MAVEN_GPG_PASSPHRASE: ${{ env.MAVEN_GPG_PASSPHRASE }}
+ - name: Upload local staging directory
+ uses: actions/upload-artifact@v3
+ with:
+ name: ${{ matrix.classifier }}-local-staging
+ path: bindings/java/local-staging
+ if-no-files-found: error
+
+ deploy-snapshots:
+ runs-on: ubuntu-latest
+ if: github.event_name == 'push' || !github.event.pull_request.head.repo.fork
+ needs: [stage-snapshot]
+ steps:
+ - uses: actions/checkout@v3
+ - name: Load secret
+ id: op-load-secret
+ uses: 1password/load-secrets-action@v1
+ with:
+ export-env: true
+ env:
+ OP_SERVICE_ACCOUNT_TOKEN: ${{ secrets.OP_SERVICE_ACCOUNT_TOKEN }}
+ MAVEN_GPG_PRIVATE_KEY: op://services/maven/gpg_private_key
+ MAVEN_GPG_PASSPHRASE: op://services/maven/gpg_passphrase
+
+ - name: Set up JDK 8
+ uses: actions/setup-java@v3
+ with:
+ distribution: 'temurin'
+ java-version: '8'
+ cache: 'maven'
+ server-id: apache.snapshots.https
+ server-username: MAVEN_USERNAME
+ server-password: MAVEN_CENTRAL_TOKEN
+ gpg-private-key: ${{ env.MAVEN_GPG_PRIVATE_KEY }}
+ gpg-passphrase: ${{ env.MAVEN_GPG_PASSPHRASE }}
+
+ - name: Prepare enviroment variables
+ run: echo "LOCAL_STAGING_DIR=$HOME/local-staging" >> $GITHUB_ENV
+
+ - name: Download windows staging directory
+ uses: actions/download-artifact@v3
+ with:
+ name: windows-x86_64-local-staging
+ path: ~/windows-x86_64-local-staging
+ - name: Download linux staging directory
+ uses: actions/download-artifact@v3
+ with:
+ name: linux-x86_64-local-staging
+ path: ~/linux-x86_64-local-staging
+ - name: Download darwin staging directory
+ uses: actions/download-artifact@v3
+ with:
+ name: osx-x86_64-local-staging
+ path: ~/osx-x86_64-local-staging
+ - name: Download darwin (aarch64) staging directory
+ uses: actions/download-artifact@v3
+ with:
+ name: osx-aarch_64-local-staging
+ path: ~/osx-aarch_64-local-staging
+
+ - name: Merge staging repositories
+ run: |
+ mkdir -p ~/local-staging/deferred
+ cat ~/windows-x86_64-local-staging/deferred/.index >> ~/local-staging/deferred/.index
+ cp -r ~/windows-x86_64-local-staging/deferred/* ~/local-staging/deferred/
+ cat ~/linux-x86_64-local-staging/deferred/.index >> ~/local-staging/deferred/.index
+ cp -r ~/linux-x86_64-local-staging/deferred/* ~/local-staging/deferred/
+ cat ~/osx-x86_64-local-staging/deferred/.index >> ~/local-staging/deferred/.index
+ cp -r ~/osx-x86_64-local-staging/deferred/* ~/local-staging/deferred/
+ cat ~/osx-aarch_64-local-staging/deferred/.index >> ~/local-staging/deferred/.index
+ cp -r ~/osx-aarch_64-local-staging/deferred/* ~/local-staging/deferred/
+
+ - name: Deploy local staged artifacts
+ if: ${{ github.event_name != 'pull_request' }}
+ working-directory: bindings/java
+ run: mvn org.sonatype.plugins:nexus-staging-maven-plugin:deploy-staged -DaltStagingDirectory=$LOCAL_STAGING_DIR
+ env:
+ MAVEN_USERNAME: ${{ secrets.NEXUS_USER }}
+ MAVEN_CENTRAL_TOKEN: ${{ secrets.NEXUS_PW }}
+ MAVEN_GPG_PASSPHRASE: ${{ env.MAVEN_GPG_PASSPHRASE }}