diff --git a/.github/workflows/build-and-upload-archives-upon-creating-tags.yml b/.github/workflows/build-and-upload-archives-upon-creating-tags.yml new file mode 100644 index 0000000000000..72f5144a1b588 --- /dev/null +++ b/.github/workflows/build-and-upload-archives-upon-creating-tags.yml @@ -0,0 +1,60 @@ +# Licensed to the Apache Software Foundation (ASF) under one +# or more contributor license agreements. See the NOTICE file +# distributed with this work for additional information +# regarding copyright ownership. The ASF licenses this file +# to you under the Apache License, Version 2.0 (the +# "License"); you may not use this file except in compliance +# with the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, +# software distributed under the License is distributed on an +# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +# KIND, either express or implied. See the License for the +# specific language governing permissions and limitations +# under the License + +name: Build and Upload Archives upon Creating Tags + +# Run this workflow every time a tag is created/pushed +on: + push: + tags: + - '*' + +jobs: + build: + # Name the Job + name: Build tagged commit and upload an archive + # Set the type of machine to run on + runs-on: ubuntu-latest + steps: + # Checks out a copy of your repository on the ubuntu-latest machine + - name: Checkout code + uses: actions/checkout@v2 + with: + ref: ${{ github.event.pull_request.head.sha }} + # bring in all history because the gradle versions plugin needs to "walk back" to the closest ancestor tag + fetch-depth: 0 + - name: Set up JDK 1.8 + uses: actions/setup-java@v1 + with: + java-version: 1.8 + - name: Set up release version env variable + run: | + echo "RELEASE_VERSION=${GITHUB_REF#refs/*/}" >> $GITHUB_ENV + - name: Verify the release version + run: | + echo "Release version: ${{ env.RELEASE_VERSION }}" + - name: Build with Gradle and run all tests + # exclude the streams test and connect test + run: ./gradlew cleanTest :clients:test :core:test --no-daemon -PxmlFindBugsReport=true -PtestLoggingEvents=started,passed,skipped,failed + - name: Upload archive + run: | + # TODO: uncomment the below command which uploads the archive once we have verified below things: + # 1. This workflow gets triggered upon tag creation/push + # 2. The release version (${{ env.RELEASE_VERSION }}) is extracted and printed in the console correctly + # 3. Disable the uploading archive feature in Travis. Otherwise, both Travis and Github Action will + # try to upload the same archive + # ./gradlew -Pversion=${{ env.RELEASE_VERSION }} :clients:uploadArchives :core:uploadArchives --no-daemon