Release #11
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: Release | |
on: workflow_dispatch | |
jobs: | |
build: | |
name: Compile and Test | |
strategy: | |
matrix: | |
os: [ ubuntu-latest ] | |
spark: [ '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: [ '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 |