Skip to content

Commit

Permalink
Add arm64 images builds in CI (#1418)
Browse files Browse the repository at this point in the history
  • Loading branch information
adejanovski committed Sep 29, 2023
1 parent 4efed8a commit d461c2e
Show file tree
Hide file tree
Showing 5 changed files with 46 additions and 38 deletions.
20 changes: 8 additions & 12 deletions .github/scripts/before_deploy.sh
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,10 @@ set -xe
mkdir -p src/packages

export VERSION=$(printf 'VER\t${project.version}' | mvn help:evaluate | grep '^VER' | cut -f2)

# Used for the docker image build
echo "SHADED_JAR=src/server/target/cassandra-reaper-${VERSION}.jar" >> $GITHUB_ENV

if [ "${GITHUB_REF}" = "refs/heads/master" ]
then
mkdir -p cassandra-reaper-master/server/target
Expand All @@ -36,13 +40,9 @@ then
tar czf cassandra-reaper-${VERSION}.tar.gz cassandra-reaper-master/
sudo mv cassandra-reaper-${VERSION}.tar.gz src/packages/
export GIT_HASH=$(git log --pretty=format:'%h' -n 1)
docker login -u $DOCKER_USER -p $DOCKER_PASS
export REPO=thelastpickle/cassandra-reaper
mvn -B -pl src/server/ docker:build -Ddocker.directory=src/server/src/main/docker
docker tag cassandra-reaper:latest $REPO:master
docker push $REPO:master
docker tag cassandra-reaper:latest $REPO:$GIT_HASH
docker push $REPO:$GIT_HASH
echo "DOCKER_TAG1=$REPO:master" >> $GITHUB_ENV
echo "DOCKER_TAG2=$REPO:$GIT_HASH" >> $GITHUB_ENV
fi
if [[ ${GITHUB_REF} == "refs/tags"* ]]
then
Expand All @@ -59,11 +59,7 @@ then
cd ../..
tar czf cassandra-reaper-${VERSION}-release.tar.gz cassandra-reaper-${VERSION}/
sudo mv cassandra-reaper-${VERSION}-release.tar.gz src/packages/
docker login -u $DOCKER_USER -p $DOCKER_PASS
export REPO=thelastpickle/cassandra-reaper
mvn -B -pl src/server/ docker:build -Ddocker.directory=src/server/src/main/docker
docker tag cassandra-reaper:latest $REPO:latest
docker push $REPO:latest
docker tag cassandra-reaper:latest $REPO:$VERSION
docker push $REPO:$VERSION
echo "DOCKER_TAG1=$REPO:latest" >> $GITHUB_ENV
echo "DOCKER_TAG2=$REPO:$VERSION" >> $GITHUB_ENV
fi
3 changes: 2 additions & 1 deletion .github/scripts/run-tests.sh
Original file line number Diff line number Diff line change
Expand Up @@ -146,7 +146,8 @@ case "${TEST_TYPE}" in
mvn -B package -DskipTests
docker-compose -f ./src/packaging/docker-build/docker-compose.yml build
docker-compose -f ./src/packaging/docker-build/docker-compose.yml run build
mvn -B -f src/server/pom.xml docker:build -Ddocker.directory=src/server/src/main/docker -DskipTests
VERSION=$(printf 'VER\t${project.version}' | mvn help:evaluate | grep '^VER' | cut -f2)
docker build --build-arg SHADED_JAR=src/server/target/cassandra-reaper-${VERSION}.jar -f src/server/src/main/docker/Dockerfile -t cassandra-reaper:latest .
docker images

# Clear out Cassandra data before starting a new cluster
Expand Down
31 changes: 27 additions & 4 deletions .github/workflows/ci.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -472,12 +472,35 @@ jobs:
run: |
MAVEN_OPTS="-Xmx384m" mvn -B install -DskipTests
- name: Set up QEMU
uses: docker/setup-qemu-action@v2
with:
platforms: 'arm64,arm'
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v2
- name: Login to DockerHub
uses: docker/login-action@v2
with:
username: ${{ secrets.DOCKERHUB_USER }}
password: ${{ secrets.DOCKERHUB_PASSWORD }}
- name: Build packages
env:
DOCKER_USER: ${{ secrets.DOCKERHUB_USER }}
DOCKER_PASS: ${{ secrets.DOCKERHUB_PASSWORD }}
run: ./.github/scripts/before_deploy.sh

- name: tags
run: |
echo "Tags: ${{ env.DOCKER_TAG1 }} and ${{ env.DOCKER_TAG2 }}"
- name: Build image and push
id: docker_build
uses: docker/build-push-action@v4
with:
file: src/server/src/main/docker/Dockerfile
context: .
build-args: |
SHADED_JAR=${{ env.SHADED_JAR }}
push: true
tags: ${{ env.DOCKER_TAG1 }},${{ env.DOCKER_TAG2 }}
platforms: linux/amd64,linux/arm64
cache-from: type=local,src=/tmp/.buildx-cache
cache-to: type=local,dest=/tmp/.buildx-cache
- name: Locate deb and rpm packages for upload
run: |
REPO=reaper-deb
Expand Down
12 changes: 0 additions & 12 deletions src/server/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -499,18 +499,6 @@
<buildArgs>
<SHADED_JAR>cassandra-reaper-${project.version}.jar</SHADED_JAR>
</buildArgs>
<resources>
<resource>
<targetPath>/</targetPath>
<directory>${project.build.directory}</directory>
<include>cassandra-reaper-${project.version}.jar</include>
</resource>
<resource>
<targetPath>/</targetPath>
<directory>${project.basedir}/../packaging/bin/</directory>
<include>spreaper</include>
</resource>
</resources>
</configuration>
</plugin>
<plugin>
Expand Down
18 changes: 9 additions & 9 deletions src/server/src/main/docker/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@
# See the License for the specific language governing permissions and
# limitations under the License.

FROM adoptopenjdk/openjdk11:alpine
FROM amazoncorretto:11.0.20-alpine

ARG SHADED_JAR

Expand Down Expand Up @@ -89,15 +89,15 @@ RUN apk add --update \
&& rm -rf /var/cache/apk/*


ADD cassandra-reaper.yml /etc/cassandra-reaper/cassandra-reaper.yml
ADD shiro.ini /etc/cassandra-reaper/shiro.ini
ADD entrypoint.sh /usr/local/bin/entrypoint.sh
ADD configure-persistence.sh /usr/local/bin/configure-persistence.sh
ADD configure-metrics.sh /usr/local/bin/configure-metrics.sh
ADD configure-webui-authentication.sh /usr/local/bin/configure-webui-authentication.sh
ADD configure-jmx-credentials.sh /usr/local/bin/configure-jmx-credentials.sh
ADD src/server/src/main/docker/cassandra-reaper.yml /etc/cassandra-reaper/cassandra-reaper.yml
ADD src/server/src/main/docker/shiro.ini /etc/cassandra-reaper/shiro.ini
ADD src/server/src/main/docker/entrypoint.sh /usr/local/bin/entrypoint.sh
ADD src/server/src/main/docker/configure-persistence.sh /usr/local/bin/configure-persistence.sh
ADD src/server/src/main/docker/configure-metrics.sh /usr/local/bin/configure-metrics.sh
ADD src/server/src/main/docker/configure-webui-authentication.sh /usr/local/bin/configure-webui-authentication.sh
ADD src/server/src/main/docker/configure-jmx-credentials.sh /usr/local/bin/configure-jmx-credentials.sh
ADD ${SHADED_JAR} /usr/local/lib/cassandra-reaper.jar
ADD spreaper /usr/local/bin/spreaper
ADD src/packaging/bin/spreaper /usr/local/bin/spreaper


# get around `/usr/local/bin/configure-persistence.sh: line 65: can't create /etc/cassandra-reaper/cassandra-reaper.yml: Interrupted system call` unknown error
Expand Down

0 comments on commit d461c2e

Please sign in to comment.