Upgrade to Kotlin 1.9.21 (#1077) #16
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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/[email protected] | |
# 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 "/*" |