From e913ec2251464aa9ffcdb821e3a8b2cdb40eafa0 Mon Sep 17 00:00:00 2001 From: Tobias Hargesheimer Date: Thu, 26 Sep 2024 19:51:11 +0200 Subject: [PATCH] c-mqtt-forwarder --- .../build_docker_images-c-mqtt-forwarder.yaml | 111 ++++++++++++++++++ 1 file changed, 111 insertions(+) create mode 100644 .github/workflows/build_docker_images-c-mqtt-forwarder.yaml diff --git a/.github/workflows/build_docker_images-c-mqtt-forwarder.yaml b/.github/workflows/build_docker_images-c-mqtt-forwarder.yaml new file mode 100644 index 0000000..180551b --- /dev/null +++ b/.github/workflows/build_docker_images-c-mqtt-forwarder.yaml @@ -0,0 +1,111 @@ +name: 'build docker images: c-mqtt-forwarder' + +on: + #push: + # branches: + # - 'main' + # - 'master' + # paths: + # - 'c-mqtt-forwarder.Dockerfile' + # - '.github/workflows/build_docker_images-c-mqtt-forwarder.yaml' + workflow_dispatch: + schedule: + - cron: '30 6 28 * *' # At 06:30 on day-of-month 28. + +defaults: + run: + shell: bash + +jobs: + docker: + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@v4 + + - name: Shell-Script + id: script + run: | + BUILD_DATE="$(date -u +'%Y-%m-%dT%H:%M:%SZ')" + BUILD_DATE_NUMERIC="${BUILD_DATE//[^[:digit:]]/}" + COMMIT_HASH=${GITHUB_SHA::8} + GIT_URL=$(echo "${GITHUB_SERVER_URL}" | awk -F/ '{print $3}' | sed 's/\/*$//') + GIT_URL=$(echo "$GIT_URL" | sed 's/github\.com/ghcr\.io/g') # GIT_URL switch to ghcr.io registry for GitHub + GIT_REPO=${GITHUB_REPOSITORY,,} + GIT_REPO_SHORT=${GIT_REPO#*/} + GIT_REPO_SHORT=${GIT_REPO_SHORT#"docker-"} + DOCKER_REPO=${{ secrets.DOCKER_USERNAME }}/${GIT_REPO_SHORT} + REDHAT_QUAY_REPO=${{ secrets.REDHAT_QUAY_USERNAME }}/${GIT_REPO_SHORT} + + echo "ENVs: BUILD_DATE=${BUILD_DATE}, BUILD_DATE_NUMERIC=${BUILD_DATE_NUMERIC}, COMMIT_HASH=${COMMIT_HASH}, GIT_URL=${GIT_URL}, GIT_REPO=${GIT_REPO}" + + # Set output parameters to action. + echo "build_date=${BUILD_DATE}" >> "$GITHUB_OUTPUT" + echo "build_date_numeric=${BUILD_DATE_NUMERIC}" >> "$GITHUB_OUTPUT" + echo "commit_hash=${COMMIT_HASH}" >> "$GITHUB_OUTPUT" + echo "git_url=${GIT_URL}" >> "$GITHUB_OUTPUT" + echo "git_repo=${GIT_REPO}" >> "$GITHUB_OUTPUT" + echo "docker_repo=${DOCKER_REPO}" >> "$GITHUB_OUTPUT" + echo "redhat_quay_repo=${REDHAT_QUAY_REPO}" >> "$GITHUB_OUTPUT" + + # c-mqtt-forwarder + C_MQTT_FORWARDER_VERSION="1.0.0" + echo "c_mqtt_forwarder_version=${C_MQTT_FORWARDER_VERSION}" >> "$GITHUB_OUTPUT" + + - name: Set up QEMU + id: qemu + uses: docker/setup-qemu-action@v3 + with: + image: tonistiigi/binfmt:latest + platforms: all + + - name: Set up Docker Buildx + id: buildx + uses: docker/setup-buildx-action@v3 + + - name: Login to GIT Container Registry + uses: docker/login-action@v3 + with: + registry: ${{ steps.script.outputs.git_url }} + username: ${{ github.repository_owner }} + password: ${{ secrets.GITHUB_TOKEN }} + + - name: Login to DockerHub Container Registry + uses: docker/login-action@v3 + with: + registry: docker.io + username: ${{ secrets.DOCKER_USERNAME }} + password: ${{ secrets.DOCKER_PASSWORD }} + + - name: Login to RED HAT Quay.io Container Registry + uses: docker/login-action@v3 + with: + registry: quay.io + username: ${{ secrets.REDHAT_QUAY_USERNAME }} + password: ${{ secrets.REDHAT_QUAY_PASSWORD }} + + - name: Build + uses: docker/build-push-action@v6 + with: + builder: ${{ steps.buildx.outputs.name }} + context: . + file: ./c-mqtt-forwarder.Dockerfile + platforms: linux/amd64,linux/arm64/v8,linux/arm/v7,linux/arm/v6 + push: true + build-args: | + BUILD_DATE=${{steps.script.outputs.build_date}} + VCS_REF=${{steps.script.outputs.commit_hash}} + VERSION=${{steps.script.outputs.c_mqtt_forwarder_version}} + tags: | + docker.io/${{steps.script.outputs.docker_repo}}:c-mqtt-forwarder + quay.io/${{steps.script.outputs.redhat_quay_repo}}:c-mqtt-forwarder + ${{steps.script.outputs.git_url}}/${{steps.script.outputs.git_repo}}:c-mqtt-forwarder + + #- name: Docker Hub Description + # uses: peter-evans/dockerhub-description@v4 + # with: + # username: ${{ secrets.DOCKER_USERNAME }} + # password: ${{ secrets.DOCKER_PASSWORD }} + # repository: ${{steps.script.outputs.docker_repo}} + # short-description: ${{ github.event.repository.description }} + # readme-filepath: README.md \ No newline at end of file