Skip to content

Commit

Permalink
add docker build tests
Browse files Browse the repository at this point in the history
  • Loading branch information
emerkle826 committed Jul 11, 2023
1 parent b02cd88 commit 7962ef6
Showing 1 changed file with 166 additions and 0 deletions.
166 changes: 166 additions & 0 deletions .github/workflows/docker-build.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,166 @@

name: Docker Image build tests

on: [push, pull_request]

jobs:
docker-build-oss:
name: Publish ${{ matrix.cassandra-version }} Cassandra image
runs-on: ubuntu-latest
strategy:
matrix:
include:
- cassandra-version: '3.11'
docker-file: Dockerfile-oss
build-target: oss311
- cassandra-version: '4.0'
docker-file: Dockerfile-4_0
build-target: oss40
- cassandra-version: '4.1'
docker-file: Dockerfile-4_1
build-target: oss41
steps:
- name: Check out source code
uses: actions/checkout@v3
# Setup metadata based on the commit/tag that will be used for tagging the image
# Only build and publish a commit based tag
- name: Setup Docker meta
id: meta
uses: docker/metadata-action@v4
with:
images: k8ssandra/cass-management-api
tags: type=sha,prefix=${{ matrix.cassandra-version }}-
- name: Set up QEMU
uses: docker/setup-qemu-action@v2
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v2
- name: Login to DockerHub
uses: docker/login-action@v2
with:
username: ${{ secrets.DOCKER_HUB_USERNAME }}
password: ${{ secrets.DOCKER_HUB_PASSWORD }}
- name: Build and push Cassandra ${{ matrix.cassandra-version }}
id: docker_build
uses: docker/build-push-action@v3
with:
file: ${{ matrix.docker-file }}
context: .
push: false
tags: ${{ steps.meta.outputs.tags }}
platforms: linux/amd64,linux/arm64
target: ${{ matrix.build-target }}
docker-build-dse-ubuntu:
name: Publish DSE Ubuntu images
needs: build-dse
runs-on: ubuntu-latest
strategy:
matrix:
jdk-version: [jdk8, jdk11]
steps:
- name: Check out source code
uses: actions/checkout@v3
- name: Setup Maven settings file
run: |
mkdir -p ~/.m2
cat <<EOF > ~/.m2/settings.xml
<settings>
<servers>
<server>
<id>artifactory-snapshots</id>
<username>${{ secrets.ARTIFACTORY_USERNAME }}</username>
<password>${{ secrets.ARTIFACTORY_PASSWORD }}</password>
</server>
<server>
<id>artifactory-releases</id>
<username>${{ secrets.ARTIFACTORY_USERNAME }}</username>
<password>${{ secrets.ARTIFACTORY_PASSWORD }}</password>
</server>
</servers>
</settings>
EOF
cp ~/.m2/settings.xml settings.xml
# Setup metadata based on the commit/tag that will be used for tagging the image
# Only build and publish a commit based tag
- name: Setup Docker meta
id: meta
uses: docker/metadata-action@v4
with:
images: datastax/dse-mgmtapi-6_8
tags: type=sha,prefix=dse68-${{ matrix.jdk-version }}-
- name: Set up QEMU
uses: docker/setup-qemu-action@v2
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v2
- name: Login to DockerHub
uses: docker/login-action@v2
with:
username: ${{ secrets.DOCKER_HUB_USERNAME }}
password: ${{ secrets.DOCKER_HUB_PASSWORD }}
- name: Build and push DSE 6.8-${{ matrix.jdk-version }}
id: docker_build
uses: docker/build-push-action@v3
with:
file: dse-68/Dockerfile.${{ matrix.jdk-version }}
context: .
push: false
tags: ${{ steps.meta.outputs.tags }}
platforms: linux/amd64,linux/arm64
target: dse68
docker-build-dse-ubi:
name: Publish DSE UBI image
needs: docker-build-dse-ubuntu
runs-on: ubuntu-latest
steps:
- name: Check out source code
uses: actions/checkout@v3
- name: Setup Maven settings file
run: |
mkdir -p ~/.m2
cat <<EOF > ~/.m2/settings.xml
<settings>
<servers>
<server>
<id>artifactory-snapshots</id>
<username>${{ secrets.ARTIFACTORY_USERNAME }}</username>
<password>${{ secrets.ARTIFACTORY_PASSWORD }}</password>
</server>
<server>
<id>artifactory-releases</id>
<username>${{ secrets.ARTIFACTORY_USERNAME }}</username>
<password>${{ secrets.ARTIFACTORY_PASSWORD }}</password>
</server>
</servers>
</settings>
EOF
cp ~/.m2/settings.xml settings.xml
# Setup metadata based on the commit/tag that will be used for tagging the image
# Only build and publish a commit based tag
- name: Setup Docker meta
id: meta
uses: docker/metadata-action@v4
with:
images: datastax/dse-mgmtapi-6_8
tags: type=sha,prefix=dse68-ubi7-
- name: Set up QEMU
uses: docker/setup-qemu-action@v2
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v2
- name: Login to DockerHub
uses: docker/login-action@v2
with:
username: ${{ secrets.DOCKER_HUB_USERNAME }}
password: ${{ secrets.DOCKER_HUB_PASSWORD }}
- name: Set outputs
id: vars
run: echo "sha_short=$(git rev-parse --short HEAD)" >> $GITHUB_OUTPUT
- name: Build and push DSE 6.8-ubi7
id: docker_build
uses: docker/build-push-action@v3
with:
file: dse-68/Dockerfile.ubi7
build-args: VERSION=dse68-jdk8-${{ steps.vars.outputs.sha_short }}
context: .
push: false
tags: ${{ steps.meta.outputs.tags }}
platforms: linux/amd64,linux/arm64
target: dse68

0 comments on commit 7962ef6

Please sign in to comment.