Skip to content

Release

Release #8

Workflow file for this run

name: Release
on: workflow_dispatch
jobs:
build:
name: Compile and Test
strategy:
matrix:
os: [ ubuntu-latest ]
spark: [ '2.4_2.11', '2.4_2.12', '3.0_2.12', '3.1_2.12', '3.2_2.12', '3.3_2.12' ]
runs-on: ${{ matrix.os }}
steps:
- name: Source Checkout
uses: actions/checkout@v2
- name: Set up JDK 1.8
uses: actions/setup-java@v1
with:
java-version: 1.8
- name: Cache Maven Jars
uses: actions/cache@v2
env:
cache-name: cache-maven-jars
with:
path: ~/.m2
key: metalus-build-${{ env.cache-name }}
- id: get-versions
run: |
spark=$(echo ${{matrix.spark}} | cut -d_ -f1)
scala=$(echo ${{matrix.spark}} | cut -d_ -f2)
echo "::set-output name=spark::$spark"
echo "::set-output name=scala::$scala"
- name: Build with Maven
env:
SPARK_LOCAL_IP: 127.0.0.1
JAVA_TOOL_OPTIONS: -Dfile.encoding=UTF8
run: mvn -B -P spark_${{ steps.get-versions.outputs.spark }},scala_${{ steps.get-versions.outputs.scala }} clean install
code_quality:
name: Code Quality
needs: build
runs-on: ubuntu-latest
steps:
- name: Source Checkout
uses: actions/checkout@v2
- name: Set up JDK 1.8
uses: actions/setup-java@v1
with:
java-version: 1.8
- name: Cache Maven Jars
uses: actions/cache@v2
env:
cache-name: cache-maven-jars
with:
path: ~/.m2
key: metalus-build-${{ env.cache-name }}
- name: Build with Maven
run: mvn -P spark_3.1 -B -DskipTests=true clean install
- name: Coverage Report
env:
SPARK_LOCAL_IP: 127.0.0.1
JAVA_TOOL_OPTIONS: -Dfile.encoding=UTF8
run: mvn -P spark_3.1 -Dhttp.keepAlive=false -Dmaven.wagon.http.pool=false -Dmaven.wagon.httpconnectionManager.ttlSeconds=120 -B -DrepoToken=${{ secrets.COVERALLS_REPO_TOKEN }} scoverage:report coveralls:report
release_pom:
if: ${{ github.repository == 'Acxiom/metalus' && github.ref == 'refs/heads/master' && github.event_name != 'pull_request' }}
name: Release POM
needs: code_quality
runs-on: ubuntu-latest
steps:
- name: Source Checkout
uses: actions/checkout@v2
- name: Set up JDK 1.8
uses: actions/setup-java@v1
with:
java-version: 1.8
- name: Cache Maven Jars
uses: actions/cache@v2
env:
cache-name: cache-maven-jars
with:
path: ~/.m2
key: metalus-build-${{ env.cache-name }}
- name: Remove SNAPSHOT
run: mvn -B -P spark_3.1 versions:set -DremoveSnapshot
- name: Setup Signing Key
run: |
sudo apt-get -y install gnupg1
openssl aes-256-cbc -K ${{ secrets.SIGNING_ASC_KEY }} -iv ${{ secrets.SIGNING_ASC_IV }} -in deployment/acxsigningkey.asc.enc -out deployment/acxsigningkey.asc -d
gpg1 --keyring=deployment/pubring.gpg --no-default-keyring --import deployment/acxsigningkey.asc
gpg1 --secret-keyring=deployment/secring.gpg --no-default-keyring --import deployment/acxsigningkey.asc
- name: Deploy Maven Central
env:
SONATYPE_USERNAME: ${{ secrets.SONATYPE_USERNAME }}
SONATYPE_PASSWORD: ${{ secrets.SONATYPE_PASSWORD }}
run: mvn --settings deployment/release-settings.xml -pl . -B -P release,spark_3.1 -DskipTests=true -Dgpg.executable=gpg1 -Dgpg.keyname=E08709FDFF083D6D -Dgpg.passphrase=${{ secrets.SIGNING_KEY_PASSPHRASE }} -Dgpg.publicKeyring=deployment/pubring.gpg -Dgpg.secretKeyring=deployment/secring.gpg deploy
release:
if: ${{ github.repository == 'Acxiom/metalus' && github.ref == 'refs/heads/master' && github.event_name != 'pull_request' }}
name: Release
needs: code_quality
strategy:
matrix:
spark: [ '2.4_2.11', '2.4_2.12', '3.0_2.12', '3.1_2.12', '3.2_2.12', '3.3_2.12' ]
runs-on: ubuntu-latest
steps:
- name: Source Checkout
uses: actions/checkout@v2
- name: Set up JDK 1.8
uses: actions/setup-java@v1
with:
java-version: 1.8
- name: Cache Maven Jars
uses: actions/cache@v2
env:
cache-name: cache-maven-jars
with:
path: ~/.m2
key: metalus-build-${{ env.cache-name }}
- id: get-versions
run: |
spark=$(echo ${{matrix.spark}} | cut -d_ -f1)
scala=$(echo ${{matrix.spark}} | cut -d_ -f2)
echo "::set-output name=spark::$spark"
echo "::set-output name=scala::$scala"
- name: Remove SNAPSHOT
run: mvn -B -P spark_${{ steps.get-versions.outputs.spark }},scala_${{ steps.get-versions.outputs.scala }} versions:set -DremoveSnapshot
- name: Build with Release
run: mvn -B -DskipTests=true -P spark_${{ steps.get-versions.outputs.spark }},scala_${{ steps.get-versions.outputs.scala }}} clean install
- name: Setup Signing Key
run: |
sudo apt-get -y install gnupg1
openssl aes-256-cbc -K ${{ secrets.SIGNING_ASC_KEY }} -iv ${{ secrets.SIGNING_ASC_IV }} -in deployment/acxsigningkey.asc.enc -out deployment/acxsigningkey.asc -d
gpg1 --keyring=deployment/pubring.gpg --no-default-keyring --import deployment/acxsigningkey.asc
gpg1 --secret-keyring=deployment/secring.gpg --no-default-keyring --import deployment/acxsigningkey.asc
- name: Deploy Maven Central
env:
SONATYPE_USERNAME: ${{ secrets.SONATYPE_USERNAME }}
SONATYPE_PASSWORD: ${{ secrets.SONATYPE_PASSWORD }}
run: mvn --settings deployment/release-settings.xml -pl metalus-core,metalus-aws,metalus-common,metalus-gcp,metalus-kafka,metalus-mongo,metalus-delta,metalus-utils -B -P release,spark_${{ steps.get-versions.outputs.spark }},scala_${{ steps.get-versions.outputs.scala }} -DskipTests=true -Dgpg.executable=gpg1 -Dgpg.keyname=E08709FDFF083D6D -Dgpg.passphrase=${{ secrets.SIGNING_KEY_PASSPHRASE }} -Dgpg.publicKeyring=deployment/pubring.gpg -Dgpg.secretKeyring=deployment/secring.gpg deploy
- name: Set Metalus Version
run: |
echo 'METALUS_VERSION<<EOF' >> $GITHUB_ENV
mvn -P spark_3.1 -q -Dexec.executable="echo" -Dexec.args='${project.version}' --non-recursive exec:exec >> $GITHUB_ENV
echo 'EOF' >> $GITHUB_ENV
- name: Display Metalus Application Target Directory
run: |
pwd
ls -l metalus-application/target
- name: Upload Application Jar
uses: actions/upload-artifact@v2
with:
name: metalus-application_${{ steps.get-versions.outputs.scala }}-spark_${{ steps.get-versions.outputs.spark }}-${{ env.METALUS_VERSION }}.jar
path: metalus-application/target/metalus-application_${{ steps.get-versions.outputs.scala }}-spark_${{ steps.get-versions.outputs.spark }}-${{ env.METALUS_VERSION }}.jar
- name: Upload Application Utils
uses: actions/upload-artifact@v2
with:
name: metalus-utils_${{ steps.get-versions.outputs.scala }}-spark_${{ steps.get-versions.outputs.spark }}-${{ env.METALUS_VERSION }}.tar.gz
path: metalus-utils/target/metalus-utils_${{ steps.get-versions.outputs.scala }}-spark_${{ steps.get-versions.outputs.spark }}-${{ env.METALUS_VERSION }}.tar.gz
release_github:
name: Github Release
needs: release
runs-on: ubuntu-latest
steps:
- name: Source Checkout
uses: actions/checkout@v2
- name: Set up JDK 1.8
uses: actions/setup-java@v1
with:
java-version: 1.8
- name: Cache Maven Jars
uses: actions/cache@v2
env:
cache-name: cache-maven-jars
with:
path: ~/.m2
key: metalus-build-${{ env.cache-name }}
- name: Remove SNAPSHOT
run: mvn -P spark_3.1 -B versions:set -DremoveSnapshot
- name: Set Metalus Version
run: |
echo 'METALUS_VERSION<<EOF' >> $GITHUB_ENV
mvn -P spark_3.1 -q -Dexec.executable="echo" -Dexec.args='${project.version}' --non-recursive exec:exec >> $GITHUB_ENV
echo 'EOF' >> $GITHUB_ENV
- name: Download Artifacts
uses: actions/download-artifact@v2
- name: Create Github Release
uses: "marvinpinto/action-automatic-releases@latest"
with:
repo_token: "${{ secrets.GITHUB_TOKEN }}"
automatic_release_tag: "${{ env.METALUS_VERSION }}"
prerelease: true
title: "Metalus Pipeline Library ${{ env.METALUS_VERSION }}"
files: |
**/*.tar.gz
**/*.jar