diff --git a/.github/workflows/gradle-cd.yml b/.github/workflows/gradle-cd.yml deleted file mode 100644 index 16267b569c..0000000000 --- a/.github/workflows/gradle-cd.yml +++ /dev/null @@ -1,190 +0,0 @@ -name: Continuous Deployment - -env: - MATRIX: '[{"OS": "ubuntu","NAMED_OS": "linux","RUNNER": "ubuntu-latest","ARCH": "x64","TARGET": "x86_64-unknown-linux-gnu","CLASSIFIER": "linux-x86_64"}, - {"OS": "ubuntu","NAMED_OS": "linux","RUNNER": ["self-hosted", "Linux", "ARM64"],"ARCH": "arm64","TARGET": "aarch64-unknown-linux-gnu","CLASSIFIER": "linux-aarch_64"}, - {"OS": "macos","NAMED_OS": "darwin","RUNNER": "macos-12","ARCH": "x64","TARGET": "x86_64-apple-darwin","CLASSIFIER": "osx-x86_64"}, - {"OS": "macos","NAMED_OS": "darwin","RUNNER": "macos-13-xlarge","ARCH": "arm64","TARGET": "aarch64-apple-darwin","CLASSIFIER": "osx-aarch_64"}]' - #, - #{"OS": "ubuntu","NAMED_OS": "linux","ARCH": "arm64","TARGET": "aarch64-unknown-linux-musl","RUNNER": ["self-hosted", "Linux", "ARM64"],"IMAGE": "node:alpine","CONTAINER_OPTIONS": "--user root --privileged --rm"}, - #{"OS": "ubuntu","NAMED_OS": "linux","ARCH": "x64","TARGET": "x86_64-unknown-linux-musl","RUNNER": "ubuntu-latest","IMAGE": "node:alpine","CONTAINER_OPTIONS": "--user root --privileged"}]' - -on: - pull_request: - paths: - - .github/workflows/gradle-cd.yml - - .github/workflows/start-self-hosted-runner/action.yml - - .github/workflows/install-rust-and-protoc/action.yml - push: - tags: - - "v*.*" - -concurrency: - group: gradle-${{ github.head_ref || github.ref }} - cancel-in-progress: true - -permissions: - id-token: write - -jobs: - output-matrix: - runs-on: ubuntu-latest - outputs: - matrix: ${{ steps.set-matrix.outputs.matrix }} - steps: - - name: Set matrix - id: set-matrix - run: | - echo "::set-output name=matrix::${{toJson( env.MATRIX )}}" - - start-self-hosted-runner: - if: github.repository_owner == 'aws' - runs-on: ubuntu-latest - environment: AWS_ACTIONS - steps: - - name: Checkout - uses: actions/checkout@v4 - with: - fetch-depth: 0 - - - name: Start self hosted EC2 runner - uses: ./.github/workflows/start-self-hosted-runner - with: - role-to-assume: ${{ secrets.ROLE_TO_ASSUME }} - aws-region: ${{ secrets.AWS_REGION }} - ec2-instance-id: ${{ secrets.AWS_EC2_INSTANCE_ID }} - - publish-binaries: - needs: [start-self-hosted-runner, output-matrix] - if: github.repository_owner == 'aws' - name: Publish packages to Maven Central - runs-on: ${{ matrix.build.RUNNER }} - container: - image: ${{ matrix.build.IMAGE || '' }} - options: ${{ matrix.build.CONTAINER_OPTIONS || 'none'}} - strategy: - fail-fast: false - matrix: - build: - ${{fromJson(needs.output-matrix.outputs.matrix)}} - - steps: - - name: Setup self-hosted runner access - if: ${{ contains(matrix.build.RUNNER, 'self-hosted') && matrix.build.TARGET != 'aarch64-unknown-linux-musl' }} - run: sudo chown -R $USER:$USER /home/ubuntu/actions-runner/_work/glide-for-redis - - # For MUSL on X64 we need to install git since we use the checkout action - - name: Install git for musl - if: ${{ contains(matrix.build.TARGET, 'x86_64-unknown-linux-musl')}} - run: | - apk update - apk add git - - - name: Checkout - if: ${{ matrix.build.TARGET != 'aarch64-unknown-linux-musl' }} - uses: actions/checkout@v4 - with: - submodules: "true" - fetch-depth: 0 - - #- name: Setup for musl - # if: ${{ contains(matrix.build.TARGET, 'musl')}} - # uses: ./.github/workflows/setup-musl-on-linux - # with: - # workspace: $GITHUB_WORKSPACE - # npm-scope: ${{ vars.NPM_SCOPE }} - # npm-auth-token: ${{ secrets.NPM_AUTH_TOKEN }} - # arch: ${{ matrix.build.ARCH }} - - - name: Set the release version - shell: bash - run: | - export version=`if ${{ github.event_name == 'pull_request' }}; then echo '255.255.255'; else echo ${GITHUB_REF:11}; fi` - echo "RELEASE_VERSION=${version}" >> $GITHUB_ENV - - - name: Set up JDK ${{ matrix.java }} - uses: actions/setup-java@v4 - with: - distribution: "temurin" - java-version: ${{ matrix.java }} - - - name: Install shared software dependencies - uses: ./.github/workflows/install-shared-dependencies - with: - os: ${{ matrix.host.OS }} - target: ${{ matrix.host.TARGET }} - github-token: ${{ secrets.GITHUB_TOKEN }} - - - name: Install protoc (protobuf) - uses: arduino/setup-protoc@v3 - with: - version: "26.1" - repo-token: ${{ secrets.GITHUB_TOKEN }} - - - name: Update package version in config.toml - uses: ./.github/workflows/update-glide-version - with: - folder_path: "${{ github.workspace }}/java/.cargo" - named_os: ${{ matrix.build.NAMED_OS }} - - - name: Create build.gradle file - shell: bash - working-directory: ./java/client - run: | - SED_FOR_MACOS=`if [[ "${{ inputs.os }}" =~ .*"macos".* ]]; then echo "''"; fi` - sed -i $SED_FOR_MACOS 's/placeholder/${{ matrix.build.CLASSIFIER }}/g' ./build.gradle - - #- name: Build Java wrapper - # working-directory: java - # run: ./gradlew --continue build - - - name: Publish to Maven Central - if: github.event_name != 'pull_request' - shell: bash - working-directory: java - run: | - ./gradlew :client:publishToMavenLocal - # set +e - # Redirect only stderr - # { npm_publish_err=$(npm publish --access public 2>&1 >&3 3>&-); } 3>&1 - # if [[ "$npm_publish_err" == *"You cannot publish over the previously published versions"* ]] - # then - # echo "Skipping publishing, package already published" - # elif [[ ! -z "$npm_publish_err" ]] - # then - # echo "Failed to publish with error: ${npm_publish_err}" - # exit 1 - # fi - # env: - # NODE_AUTH_TOKEN: ${{ secrets.NPM_AUTH_TOKEN }} - - #- name: Pack the Java JAR - # shell: bash - # working-directory: ./node - # run: | - # # Remove the "cpu" and "os" fileds so the base package would be able to install it on ubuntu - # SED_FOR_MACOS=`if [[ "${{ matrix.build.OS }}" =~ .*"macos".* ]]; then echo "''"; fi` - # sed -i $SED_FOR_MACOS '/"\/\/\/cpu": \[/,/]/d' ./package.json && sed -i $SED_FOR_MACOS '/"\/\/\/os": \[/,/]/d' ./package.json - # mkdir -p bin - # npm pack --pack-destination ./bin - # ls ./bin - # env: - # NODE_AUTH_TOKEN: ${{ secrets.NPM_AUTH_TOKEN }} - - - name: Upload the JAR - if: github.event_name != 'pull_request' - uses: actions/upload-artifact@v3 - with: - name: ${{ matrix.build.TARGET }} - path: ./java/client/build/libs/glide-${{ matrix.build.CLASSIFIER }}.jar - if-no-files-found: error - - # Reset the repository to make sure we get the clean checkout of the action later in other actions. - # It is not required since in other actions we are cleaning before the action, but it is a good practice to do it here as well. - - name: Reset repository - if: ${{ matrix.build.ARCH == 'arm64' }} - shell: bash - run: | - git reset --hard - git clean -xdf -