github.com/kubeshop/testkube@v1.17.23/.github/workflows/release-dev-log-server.yaml (about)

     1  name: Release logs server dev
     2  
     3  on:
     4    push:
     5      branches:
     6        - develop
     7  
     8  permissions:
     9    id-token: write
    10    contents: write
    11  
    12  env:
    13    ALPINE_IMAGE: alpine:3.18.0
    14    BUSYBOX_IMAGE: busybox:1.36.1-musl
    15  
    16  jobs:
    17    pre_build:
    18      name: Pre-build
    19      runs-on: ubuntu-latest
    20      steps:
    21        - name: Checkout
    22          uses: actions/checkout@v2
    23          with:
    24            fetch-depth: 0
    25  
    26        - name: Set up QEMU
    27          uses: docker/setup-qemu-action@v1
    28  
    29        - name: Set up Docker Buildx
    30          id: buildx
    31          uses: docker/setup-buildx-action@v1
    32  
    33        - name: Set up Go
    34          uses: actions/setup-go@v2
    35          with:
    36            go-version: 1.21
    37  
    38        - name: Go Cache
    39          uses: actions/cache@v2
    40          with:
    41            path: |
    42              ~/go/pkg/mod
    43              ~/.cache/go-build
    44            key: ${{ runner.os }}-go-${{ hashFiles('**/go.sum') }}
    45            restore-keys: |
    46              ${{ runner.os }}-go-
    47  
    48        - name: Login to DockerHub
    49          uses: docker/login-action@v1
    50          with:
    51            username: ${{ secrets.DOCKERHUB_USERNAME }}
    52            password: ${{ secrets.DOCKERHUB_TOKEN }}
    53  
    54        - name: Get github sha
    55          id: github_sha
    56          run: echo "::set-output name=sha_short::${GITHUB_SHA::7}"
    57  
    58        - name: Run GoReleaser
    59          uses: goreleaser/goreleaser-action@v4
    60          with:
    61            distribution: goreleaser-pro
    62            version: latest
    63            args: release -f ./goreleaser_files/.goreleaser-docker-build-logs-server.yml --snapshot
    64          env:
    65            GITHUB_TOKEN: ${{ secrets.CI_BOT_TOKEN }}
    66            GORELEASER_KEY: ${{ secrets.GORELEASER_KEY }}
    67            DOCKER_BUILDX_BUILDER: "${{ steps.buildx.outputs.name }}"
    68            DOCKER_BUILDX_CACHE_FROM: "type=gha"
    69            DOCKER_BUILDX_CACHE_TO: "type=gha,mode=max"
    70            ALPINE_IMAGE: ${{ env.ALPINE_IMAGE }}
    71            BUSYBOX_IMAGE: ${{ env.BUSYBOX_IMAGE }}
    72            DOCKER_IMAGE_TAG: ${{ steps.github_sha.outputs.sha_short }}
    73  
    74        - name: Push Docker images
    75          run: |
    76            docker push kubeshop/testkube-logs-server:${{ steps.github_sha.outputs.sha_short }}-arm64v8
    77            docker push kubeshop/testkube-logs-server:${{ steps.github_sha.outputs.sha_short }}-amd64
    78  
    79            docker manifest create kubeshop/testkube-logs-server:${{ steps.github_sha.outputs.sha_short }} --amend kubeshop/testkube-logs-server:${{ steps.github_sha.outputs.sha_short }}-arm64v8 --amend kubeshop/testkube-logs-server:${{ steps.github_sha.outputs.sha_short }}-amd64
    80            docker manifest push -p kubeshop/testkube-logs-server:${{ steps.github_sha.outputs.sha_short }}
    81  
    82        - name: Push README to Dockerhub
    83          uses: christian-korneck/update-container-description-action@v1
    84          env:
    85            DOCKER_USER: ${{ secrets.DOCKERHUB_USERNAME }}
    86            DOCKER_PASS: ${{ secrets.DOCKERHUB_TOKEN }}
    87          with:
    88            destination_container_repo: kubeshop/testkube-logs-server
    89            provider: dockerhub
    90            short_description: "Testkube CLI Docker image"
    91            readme_file: "./README.md"