PDP-1681 - Release 2.1.3 #171
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: CI | |
on: | |
push: | |
tags: | |
- '*' | |
branches: | |
- master | |
- develop | |
pull_request: | |
jobs: | |
test: | |
runs-on: ubuntu-latest | |
steps: | |
- name: Configure sysctl limits for elasticsearch | |
run: | | |
sudo swapoff -a | |
sudo sysctl -w vm.swappiness=1 | |
sudo sysctl -w fs.file-max=262144 | |
sudo sysctl -w vm.max_map_count=262144 | |
- uses: actions/checkout@v2 | |
- uses: coursier/cache-action@v6 | |
- name: Set up JDK 11 | |
uses: actions/setup-java@v2 | |
with: | |
java-version: 11 | |
distribution: adopt | |
- name: Install sbt | |
uses: sbt/setup-sbt@v1 | |
- name: Prepare test environment | |
run: $GITHUB_WORKSPACE/.github/start_environment.sh | |
- name: Run tests | |
run: sbt clean test | |
- name: Check Scala formatting | |
if: ${{ always() }} | |
run: sbt scalafmtCheckAll | |
deploy_github: | |
needs: test | |
if: startsWith(github.ref, 'refs/tags/') | |
runs-on: ubuntu-latest | |
steps: | |
- name: Get current version | |
id: ver | |
run: echo "::set-output name=tag::${GITHUB_REF#refs/tags/}" | |
- uses: actions/checkout@v2 | |
- uses: coursier/cache-action@v6 | |
- name: Set up JDK 11 | |
uses: actions/setup-java@v2 | |
with: | |
java-version: 11 | |
distribution: adopt | |
- name: Install sbt | |
uses: sbt/setup-sbt@v1 | |
- name: Build artifacts | |
run: sbt 'project elasticsearch' assembly | |
- name: Create GitHub release and attach artifacts | |
uses: softprops/action-gh-release@v1 | |
with: | |
draft: true | |
prerelease: true | |
name: Version ${{ steps.ver.outputs.tag }} | |
tag_name: ${{ steps.ver.outputs.tag }} | |
files: | | |
elasticsearch/target/scala-2.12/snowplow-elasticsearch-loader-${{ steps.ver.outputs.tag }}.jar | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
deploy_docker: | |
needs: test | |
if: startsWith(github.ref, 'refs/tags/') | |
runs-on: ubuntu-latest | |
steps: | |
- name: Get current version | |
id: ver | |
run: echo "::set-output name=tag::${GITHUB_REF#refs/tags/}" | |
- uses: actions/checkout@v2 | |
- uses: coursier/cache-action@v6 | |
- name: Install sbt | |
uses: sbt/setup-sbt@v1 | |
- name: Stage the Docker build | |
run: sbt "project elasticsearch" docker:stage | |
- name: Stage the Docker distroless build | |
run: sbt "project elasticsearchDistroless" docker:publishLocal | |
- name: Docker metadata | |
id: meta | |
uses: docker/metadata-action@v3 | |
with: | |
images: snowplow/elasticsearch-loader | |
tags: | | |
type=raw,value=latest,enable=${{ !contains(steps.ver.outputs.tag, 'rc') }} | |
type=raw,value=${{ steps.ver.outputs.tag }} | |
flavor: | | |
latest=false | |
- name: Docker metadata distroless | |
id: distroless-meta | |
uses: docker/metadata-action@v3 | |
with: | |
images: snowplow/elasticsearch-loader | |
tags: | | |
type=raw,value=latest-distroless,enable=${{ !contains(steps.ver.outputs.tag, 'rc') }} | |
type=raw,value=${{ steps.ver.outputs.tag }}-distroless | |
flavor: | | |
latest=false | |
- name: Set up QEMU | |
uses: docker/setup-qemu-action@v1 | |
- name: Set up Docker Buildx | |
uses: docker/setup-buildx-action@v1 | |
- name: Login to DockerHub | |
uses: docker/login-action@v1 | |
with: | |
username: ${{ secrets.DOCKER_USERNAME }} | |
password: ${{ secrets.DOCKER_PASSWORD }} | |
- name: Push image | |
uses: docker/build-push-action@v2 | |
with: | |
context: elasticsearch/target/docker/stage | |
file: elasticsearch/target/docker/stage/Dockerfile | |
platforms: linux/amd64,linux/arm64/v8 | |
tags: ${{ steps.meta.outputs.tags }} | |
push: true | |
- name: Push distroless image | |
uses: docker/build-push-action@v2 | |
with: | |
context: distroless/target/docker/stage | |
file: distroless/target/docker/stage/Dockerfile | |
platforms: linux/amd64,linux/arm64/v8 | |
tags: ${{ steps.distroless-meta.outputs.tags }} | |
push: true | |
- name: Run Snyk to check for vulnerabilities | |
if: ${{ !contains(steps.ver.outputs.tag, 'rc') }} | |
uses: snyk/actions/docker@master | |
with: | |
image: "snowplow/elasticsearch-loader:${{ steps.ver.outputs.tag }}-distroless" | |
args: "--app-vulns --org=data-processing-new" | |
command: monitor | |
env: | |
SNYK_TOKEN: ${{ secrets.SNYK_TOKEN }} |