Skip to content

Upgrade to Kotlin 1.9.21 (#1077) #16

Upgrade to Kotlin 1.9.21 (#1077)

Upgrade to Kotlin 1.9.21 (#1077) #16

Workflow file for this run

name: Publish Artifacts
on:
push:
tags:
- '**'
env:
OSS_USER: '${{ secrets.OSS_USER }}'
OSS_TOKEN: '${{ secrets.OSS_TOKEN }}'
OSS_STAGING_PROFILE_ID: '${{ secrets.OSS_STAGING_PROFILE_ID }}'
SIGNING_KEY_NAME: '${{ secrets.SIGNING_KEY_NAME }}'
SIGNING_KEY_ID: '${{ secrets.SIGNING_KEY_ID }}'
SIGNING_KEY_PASSPHRASE: '${{ secrets.SIGNING_KEY_PASSPHRASE }}'
SIGNING_KEY: '${{ secrets.SIGNING_KEY }}'
GRADLE_PUBLISH_KEY: '${{ secrets.GRADLE_PUBLISH_KEY }}'
GRADLE_PUBLISH_SECRET: '${{ secrets.GRADLE_PUBLISH_SECRET }}'
GRADLE_OPTS: -Dorg.gradle.daemon=false -Dorg.gradle.jvmargs="-Xmx5g -XX:+HeapDumpOnOutOfMemoryError -XX:+UseParallelGC -XX:MaxMetaspaceSize=1g -Dfile.encoding=UTF-8"
jobs:
build:
runs-on: ubuntu-latest
timeout-minutes: 30
strategy:
fail-fast: false
matrix:
jvm_target: [ '1.8', '11', '17' ]
outputs:
analysis-version: ${{ steps.get-analysis-version.outputs.analysis-version }}
steps:
- uses: actions/checkout@v3
with:
fetch-depth: 0
- uses: actions/setup-java@v3
with:
distribution: 'temurin'
java-version: '17'
- name: Build and test with Gradle
uses: gradle/gradle-build-action@v2
with:
arguments: -PjvmTargetVersion=${{ matrix.jvm_target }} build --scan --stacktrace -x apiCheck
- id: get-analysis-version
name: Get Analysis version
run: |
./gradlew
echo "::set-output name=analysis-version::$(head -n 1 build/semver/version.txt)"
- name: Upload reports
uses: actions/upload-artifact@v3
with:
name: 'reports-${{ matrix.os }}'
path: '**/build/reports/**'
- name: Stop Gradle daemons
run: ./gradlew --stop
# - name: Bundle SARIF report
# run: mkdir sarif && find . -name '*.sarif' | xargs -I{} cp "{}" ./sarif/
#
# - name: Upload SARIF report
# uses: github/codeql-action/upload-sarif@v1.1.5
# continue-on-error: true
# with:
# # Path to SARIF file relative to the root of the repository
# sarif_file: sarif
#
publish:
needs: build
runs-on: macos-11
steps:
- uses: actions/checkout@v3
- uses: actions/setup-java@v3
with:
distribution: 'temurin'
java-version: '17'
cache: 'gradle'
- name: Publish alpha/beta/rc artifacts
if: |
contains(needs.build.outputs.analysis-version, 'alpha') ||
contains(needs.build.outputs.analysis-version, 'beta') ||
contains(needs.build.outputs.analysis-version, 'rc')
run: ./gradlew --full-stacktrace publishToSonatype closeAndReleaseSonatypeStagingRepository
- name: Publish final artifacts
if: |
!contains(needs.build.outputs.analysis-version, 'alpha') &&
!contains(needs.build.outputs.analysis-version, 'beta') &&
!contains(needs.build.outputs.analysis-version, 'rc')
run: ./gradlew --full-stacktrace publishToSonatype closeAndReleaseSonatypeStagingRepository
- name: Stop Gradle daemons
run: ./gradlew --stop
publish_documentation:
needs: build
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: actions/setup-java@v3
with:
distribution: 'temurin'
java-version: '17'
cache: 'gradle'
- name: "Create API Doc and validate, step 1"
run: ./gradlew buildMetaDoc
- name: "Create API Doc and validate, step 2"
run: ./gradlew :arrow-meta:dokkaJekyll # :arrow-meta-docs:runAnk
- name: "Build"
env:
JEKYLL_ENV: production
run: |
sudo gem install bundler
bundle config set --local path 'vendor/bundle'
sudo bundle install --gemfile docs/Gemfile
MAYOR_MINOR_VERSION=${{ needs.build.outputs.analysis-version }}
echo $MAYOR_MINOR_VERSION
# bundle exec jekyll build --baseurl /$MAYOR_MINOR_VERSION -s docs -d docs/build/_site
BUNDLE_GEMFILE=docs/Gemfile bundle exec jekyll build -b /docs/meta -s docs/docs -d docs/build
- name: "Deploy"
env:
AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }}
AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
S3_BUCKET: ${{ secrets.S3_BUCKET }}
AWS_DEFAULT_REGION: eu-west-1
AWS_CLOUDFRONT_ID: ${{ secrets.AWS_CLOUDFRONT_ID }}
run: |
# Waiting for AWS configuration to active this part:
# aws s3 sync docs/build s3://$S3_BUCKET/$MAYOR_MINOR_VERSION
aws s3 sync --delete docs/build s3://$S3_BUCKET/docs/meta
aws cloudfront create-invalidation --distribution-id $AWS_CLOUDFRONT_ID --paths "/*"