Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
102 changes: 49 additions & 53 deletions .github/workflows/docker-publish.yml
Original file line number Diff line number Diff line change
Expand Up @@ -12,94 +12,90 @@ on:

env:
DOCKER_IMAGE: frankescobar/allure-docker-service
ALLURE_RELEASE: 2.27.0
QEMU_VERSION: v4.0.0
DOCKER_CLI_EXPERIMENTAL: enabled
ALLURE_RELEASE: 2.35.1

jobs:
build_release:
runs-on: ubuntu-latest
strategy:
matrix:
ARCH: [amd64, arm32v7, arm64v8]
ARCH: [amd64, arm64, armv7]
include:
- ARCH: amd64
DOCKER_FILE: Dockerfile.bionic
JDK: adoptopenjdk:11-jre-openj9-bionic
QEMU_ARCH: x86_64
DOCKER_FILE: Dockerfile
DOCKER_PLATFORM: linux/amd64
JDK: eclipse-temurin:11-jre-noble

- ARCH: arm32v7
DOCKER_FILE: Dockerfile.bionic
JDK: adoptopenjdk:11-jdk-hotspot-bionic
QEMU_ARCH: arm
- ARCH: arm64
DOCKER_FILE: Dockerfile
DOCKER_PLATFORM: linux/arm64
JDK: eclipse-temurin:11-jre-noble

- ARCH: arm64v8
DOCKER_FILE: Dockerfile.bionic
JDK: adoptopenjdk:11-jre-hotspot-bionic
QEMU_ARCH: aarch64
- ARCH: armv7
DOCKER_FILE: Dockerfile
DOCKER_PLATFORM: linux/arm/v7
JDK: eclipse-temurin:11-jre-noble

if: github.event_name == 'push'
outputs:
build_version: ${{ steps.prepare.outputs.build_version }}
steps:
- name: Pulling code
uses: actions/checkout@v2
uses: actions/checkout@v4

- name: Preparing
id: prepare
run: |
echo "DOCKER BUILD: Build Docker image."
echo "DOCKER BUILD: arch - ${{matrix.ARCH}}."
echo "DOCKER BUILD: jdk -> ${{matrix.JDK}}."
echo "DOCKER BUILD: build version -> ${VERSION}."
echo "DOCKER BUILD: allure version -> ${ALLURE_RELEASE}."
echo "DOCKER BUILD: qemu arch - ${{matrix.QEMU_ARCH}}."
echo "DOCKER BUILD: docker file - ${{matrix.DOCKER_FILE}}."
echo "DOCKER BUILD: docker file - ${{matrix.DOCKER_FILE}}."

VERSION=na
TAGS="--tag ${DOCKER_IMAGE}:build"
TAGS="--tag ${DOCKER_IMAGE}:build --tag ${DOCKER_IMAGE}:build-${{matrix.ARCH}}"

if [[ $GITHUB_REF == refs/tags/* ]]; then
VERSION=${GITHUB_REF#refs/tags/v}
if [[ $GITHUB_REF == *"beta"* ]]; then
TAGS="--tag ${DOCKER_IMAGE}:${VERSION} --tag ${DOCKER_IMAGE}:${VERSION}-${{matrix.ARCH}} --tag ${DOCKER_IMAGE}:beta --tag ${DOCKER_IMAGE}:build"
TAGS="--tag ${DOCKER_IMAGE}:${VERSION} --tag ${DOCKER_IMAGE}:${VERSION}-${{matrix.ARCH}} --tag ${DOCKER_IMAGE}:beta --tag ${DOCKER_IMAGE}:build-${{matrix.ARCH}}"
else
TAGS="--tag ${DOCKER_IMAGE}:${VERSION} --tag ${DOCKER_IMAGE}:${VERSION}-${{matrix.ARCH}} --tag ${DOCKER_IMAGE}:latest --tag ${DOCKER_IMAGE}:build"
TAGS="--tag ${DOCKER_IMAGE}:${VERSION} --tag ${DOCKER_IMAGE}:${VERSION}-${{matrix.ARCH}} --tag ${DOCKER_IMAGE}:latest --tag ${DOCKER_IMAGE}:build-${{matrix.ARCH}}"
fi
fi

echo ::set-output name=docker_image::${DOCKER_IMAGE}
echo ::set-output name=build_version::${VERSION}
echo ::set-output name=docker_args::--build-arg ARCH=${{matrix.ARCH}} \
DOCKER_ARGS_STRING="\
--build-arg JDK=${{matrix.JDK}} \
--build-arg QEMU_ARCH=${{matrix.QEMU_ARCH}} \
--build-arg BUILD_DATE=$(date -u +'%Y-%m-%dT%H:%M:%SZ') \
--build-arg BUILD_VERSION=${VERSION} \
--build-arg BUILD_REF=${GITHUB_SHA::8} \
--build-arg ALLURE_RELEASE=${ALLURE_RELEASE} \
${TAGS} --file docker/Dockerfile.bionic .
--platform ${{matrix.DOCKER_PLATFORM}} \
${TAGS} --file docker/Dockerfile ."

echo "DOCKER BUILD: build version -> ${VERSION}."
echo "build_version=${VERSION}" >> $GITHUB_OUTPUT
echo "docker_args=${DOCKER_ARGS_STRING}" >> $GITHUB_OUTPUT

- name: Setting up QEMU
run: |
# Prepare qemu to build non amd64 / x86_64 images
docker run --rm --privileged multiarch/qemu-user-static:register --reset
mkdir tmp
pushd tmp &&
curl -L -o qemu-x86_64-static.tar.gz https://github.com/multiarch/qemu-user-static/releases/download/$QEMU_VERSION/qemu-x86_64-static.tar.gz && tar xzf qemu-x86_64-static.tar.gz &&
curl -L -o qemu-arm-static.tar.gz https://github.com/multiarch/qemu-user-static/releases/download/$QEMU_VERSION/qemu-arm-static.tar.gz && tar xzf qemu-arm-static.tar.gz &&
curl -L -o qemu-aarch64-static.tar.gz https://github.com/multiarch/qemu-user-static/releases/download/$QEMU_VERSION/qemu-aarch64-static.tar.gz && tar xzf qemu-aarch64-static.tar.gz &&
popd

- name: Set up QEMU
uses: docker/setup-qemu-action@v3
with:
platforms: all

- name: Set up Docker Buildx
id: buildx
uses: docker/setup-buildx-action@v3

- name: Docker Building
run: |
docker build --no-cache ${{ steps.prepare.outputs.docker_args }}
docker buildx build --no-cache ${{ steps.prepare.outputs.docker_args }} --load

- name: Docker Testing
run: |
echo "DOCKER TEST: Test Docker image."
echo "DOCKER TEST: testing image -> ${DOCKER_IMAGE}:build"
echo "DOCKER TEST: Test Docker image"
echo "DOCKER TEST: testing image -> ${DOCKER_IMAGE}:build-${{matrix.ARCH}}"

docker run -d --rm --name=testing ${DOCKER_IMAGE}:build
docker run --platform ${{matrix.DOCKER_PLATFORM}} -d --rm --name=testing-${{matrix.ARCH}} ${DOCKER_IMAGE}:build-${{matrix.ARCH}}
if [ $? -ne 0 ]; then
echo "DOCKER TEST: FAILED - Docker container testing failed to start."
exit 1
Expand All @@ -110,15 +106,15 @@ jobs:
- name: DockerHub Login
if: success() && startsWith(github.ref, 'refs/tags/v')
env:
DOCKER_HUB_USER: ${{ secrets.DOCKER_HUB_USER }}
DOCKER_HUB_USER: ${{ vars.DOCKER_HUB_USER }}
DOCKER_HUB_PASS: ${{ secrets.DOCKER_HUB_PASS }}
run: |
echo "${DOCKER_HUB_PASS}" | docker login -u "${DOCKER_HUB_USER}" --password-stdin

- name: Docker Publishing
if: success() && startsWith(github.ref, 'refs/tags/v')
run: |
echo "DOCKER PUSH: pushing - ${DOCKER_IMAGE}:${{ steps.prepare.outputs.build_version }}-${{matrix.ARCH}}."
echo "DOCKER PUSH: pushing - ${DOCKER_IMAGE}:${{ steps.prepare.outputs.build_version }}-${{matrix.ARCH}}"
docker push ${DOCKER_IMAGE}:${{ steps.prepare.outputs.build_version }}-${{matrix.ARCH}}

- name: Docker Logout
Expand All @@ -133,7 +129,7 @@ jobs:
- name: DockerHub Login
if: success() && startsWith(github.ref, 'refs/tags/v')
env:
DOCKER_HUB_USER: ${{ secrets.DOCKER_HUB_USER }}
DOCKER_HUB_USER: ${{ vars.DOCKER_HUB_USER }}
DOCKER_HUB_PASS: ${{ secrets.DOCKER_HUB_PASS }}
run: |
echo "${DOCKER_HUB_PASS}" | docker login -u "${DOCKER_HUB_USER}" --password-stdin
Expand All @@ -144,11 +140,11 @@ jobs:
BUILD_VERSION=${{ needs.build_release.outputs.build_version }}
docker manifest create ${DOCKER_IMAGE}:${BUILD_VERSION} \
${DOCKER_IMAGE}:${BUILD_VERSION}-amd64 \
${DOCKER_IMAGE}:${BUILD_VERSION}-arm32v7 \
${DOCKER_IMAGE}:${BUILD_VERSION}-arm64v8
${DOCKER_IMAGE}:${BUILD_VERSION}-armv7 \
${DOCKER_IMAGE}:${BUILD_VERSION}-arm64

docker manifest annotate ${DOCKER_IMAGE}:${BUILD_VERSION} ${DOCKER_IMAGE}:${BUILD_VERSION}-arm32v7 --os=linux --arch=arm --variant=v7
docker manifest annotate ${DOCKER_IMAGE}:${BUILD_VERSION} ${DOCKER_IMAGE}:${BUILD_VERSION}-arm64v8 --os=linux --arch=arm64 --variant=v8
docker manifest annotate ${DOCKER_IMAGE}:${BUILD_VERSION} ${DOCKER_IMAGE}:${BUILD_VERSION}-armv7 --os=linux --arch=arm --variant=v7
docker manifest annotate ${DOCKER_IMAGE}:${BUILD_VERSION} ${DOCKER_IMAGE}:${BUILD_VERSION}-arm64 --os=linux --arch=arm64 --variant=v8

docker manifest push ${DOCKER_IMAGE}:${BUILD_VERSION}

Expand All @@ -159,11 +155,11 @@ jobs:

docker manifest create ${DOCKER_IMAGE}:${TAG} \
${DOCKER_IMAGE}:${BUILD_VERSION}-amd64 \
${DOCKER_IMAGE}:${BUILD_VERSION}-arm32v7 \
${DOCKER_IMAGE}:${BUILD_VERSION}-arm64v8
${DOCKER_IMAGE}:${BUILD_VERSION}-armv7 \
${DOCKER_IMAGE}:${BUILD_VERSION}-arm64

docker manifest annotate ${DOCKER_IMAGE}:${TAG} ${DOCKER_IMAGE}:${BUILD_VERSION}-arm32v7 --os=linux --arch=arm --variant=v7
docker manifest annotate ${DOCKER_IMAGE}:${TAG} ${DOCKER_IMAGE}:${BUILD_VERSION}-arm64v8 --os=linux --arch=arm64 --variant=v8
docker manifest annotate ${DOCKER_IMAGE}:${TAG} ${DOCKER_IMAGE}:${BUILD_VERSION}-armv7 --os=linux --arch=arm --variant=v7
docker manifest annotate ${DOCKER_IMAGE}:${TAG} ${DOCKER_IMAGE}:${BUILD_VERSION}-arm64 --os=linux --arch=arm64 --variant=v8

docker manifest push ${DOCKER_IMAGE}:${TAG}

Expand Down
30 changes: 17 additions & 13 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -91,19 +91,19 @@ Allure Docker Service supports architectures amd64, arm32v7 and arm64v8.

The following table shows the variation of provided images.

|**Tag** |**Base Image** |**Arch** | **OS** |
|----------------|--------------------------------------------|---------|--------|
| 0.20.7-amd64 | amd64/adoptopenjdk:11-jre-openj9-bionic | amd64 | ubuntu |
| 0.20.7-arm32v7 | arm32v7/adoptopenjdk:11-jdk-hotspot-bionic | arm32v7 | ubuntu |
| 0.20.7-arm64v8 | arm64v8/adoptopenjdk:11-jre-hotspot-bionic | arm64v8 | ubuntu |
|**Base Image** |**Arch** | **OS** |
|--------------------------------------------|---------|--------|
| amd64/eclipse-temurin:11-jre-noble | amd64 | ubuntu |
| arm32v7/eclipse-temurin:11-jre-noble | armv7 | ubuntu |
| arm64/eclipse-temurin:11-jre-noble | arm64 | ubuntu |

The following table shows the provided Manifest Lists.

| **Tag** | **allure-docker-service Base Image** |
|----------------------------------------|---------------------------------------------------|
| latest, 2.27.0 | frankescobar/allure-docker-service:2.27.0-amd64 |
| | frankescobar/allure-docker-service:2.27.0-arm32v7 |
| | frankescobar/allure-docker-service:2.27.0-arm64v8 |
| **Tag** | **allure-docker-service Base Image** |
|----------------------------------------|-------------------------------------------------|
| latest, 2.35.1 | frankescobar/allure-docker-service:2.35.1-amd64 |
| | frankescobar/allure-docker-service:2.35.1-armv7 |
| | frankescobar/allure-docker-service:2.35.1-arm64 |

## USAGE
### Generate Allure Results
Expand Down Expand Up @@ -722,7 +722,7 @@ You can switch the version container using `frankescobar/allure-docker-service:$
Docker Compose example:
```sh
allure:
image: "frankescobar/allure-docker-service:2.27.0"
image: "frankescobar/allure-docker-service:2.35.1"
```
or using latest version:

Expand Down Expand Up @@ -1395,7 +1395,7 @@ docker-compose -f docker-compose-dev.yml up --build
```
### Build image
```sh
docker build -t allure-release -f docker-custom/Dockerfile.bionic-custom --build-arg ALLURE_RELEASE=2.27.0 .
docker build --no-cache -t allure-release -f docker/Dockerfile --build-arg ALLURE_RELEASE=2.35.1 .
```
### Run container
```sh
Expand All @@ -1413,6 +1413,10 @@ docker exec -it ${CONTAINER_ID} bash
```sh
docker exec -it ${CONTAINER_ID} tail -f log
```
### Security scan
```sh
docker scout cves allure-release
```
### Remove all containers
```sh
docker container rm $(docker container ls -a -q) -f
Expand Down Expand Up @@ -1446,5 +1450,5 @@ docker run -d -p 5050:5050 frankescobar/allure-docker-service
```
### Download specific tagged image registered (Example)
```sh
docker run -d -p 5050:5050 frankescobar/allure-docker-service:2.27.0
docker run -d -p 5050:5050 frankescobar/allure-docker-service:2.35.1
```
70 changes: 0 additions & 70 deletions deprecated/.travis.yml

This file was deleted.

Loading