Skip to content

Build container and publish to docker hub #450

Build container and publish to docker hub

Build container and publish to docker hub #450

Workflow file for this run

name: Build container and publish to docker hub
on:
create:
tags: ["v*"]
env:
GO_VERSION: '1.21'
jobs:
generate-souin-traefik-docker:
name: Generate embedded Souin as traefik middleware
runs-on: ubuntu-latest
steps:
-
name: Get tag name
run: echo "RELEASE_VERSION=${GITHUB_REF#refs/*/}" >> $GITHUB_ENV
-
name: Checkout code
uses: actions/checkout@v4
-
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_USERNAME }}
password: ${{ secrets.DOCKER_PASSWORD }}
-
name: Build & push Docker image containing only binary
id: docker_build
uses: docker/build-push-action@v3
with:
push: true
file: ./plugins/traefik/Dockerfile.deploy
platforms: linux/amd64,linux/arm/v7,linux/arm64/v8
tags: darkweak/souin-traefik:${{ env.RELEASE_VERSION }}
generate-souin-docker:
name: Generate souin docker
runs-on: ubuntu-latest
steps:
-
name: Get tag name
run: echo "RELEASE_VERSION=${GITHUB_REF#refs/*/}" >> $GITHUB_ENV
-
name: Checkout code
uses: actions/checkout@v4
-
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_USERNAME }}
password: ${{ secrets.DOCKER_PASSWORD }}
-
name: Build & push Docker image containing only binary
id: docker_build
uses: docker/build-push-action@v4
with:
push: true
file: ./Dockerfile-prod
platforms: linux/arm64,linux/amd64,linux/ppc64le,linux/s390x,linux/arm/v7,linux/arm/v6
build-args: |
"GO_VERSION=${{ env.GO_VERSION }}"
tags: |
darkweak/souin:latest
darkweak/souin:${{ env.RELEASE_VERSION }}
generate-artifacts:
name: Deploy to goreleaser
runs-on: ubuntu-latest
steps:
-
name: Set up Go
uses: actions/setup-go@v3
with:
go-version: ${{ env.GO_VERSION }}
-
name: Checkout
uses: actions/checkout@v4
with:
fetch-depth: 0
-
name: Run GoReleaser
uses: goreleaser/goreleaser-action@v3
with:
version: latest
args: release --clean
workdir: ./plugins/souin
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
GO_VERSION: ${{ secrets.GITHUB_TOKEN }}
generate-tyk-versions:
name: Generate Tyk plugin binaries
runs-on: ubuntu-latest
env:
LATEST_VERSION: v5.0
PREVIOUS_VERSION: v4.3
SECOND_TO_LAST_VERSION: v4.2
steps:
-
name: Set up Go
uses: actions/setup-go@v3
with:
go-version: ${{ env.GO_VERSION }}
-
name: Checkout code
uses: actions/checkout@v4
-
name: Generate Tyk amd64 artifacts
run: cd plugins/tyk && make vendor && docker compose -f docker-compose.yml.artifacts up
-
name: Upload Tyk amd64 artifacts
uses: actions/upload-artifact@v3
with:
path: plugins/tyk/*.so