name: Build and Push Docker Image on: push: branches: - main - master jobs: docker: runs-on: ubuntu container: image: docker:27-cli steps: - name: Install git run: | apk add --no-cache git - name: Clone repository run: | git clone ${{ github.server_url }}/${{ github.repository }} repo cd repo git checkout ${{ github.sha }} - name: Generate tags run: | cd repo echo "SHORT_SHA=$(git rev-parse --short HEAD)" >> $GITHUB_ENV echo "BUILD_DATE=$(date -u +'%Y%m%d-%H%M%S')" >> $GITHUB_ENV - name: Set registry run: | REGISTRY=$(echo "${{ github.server_url }}" | sed 's|https://||') echo "REGISTRY=$REGISTRY" >> $GITHUB_ENV - name: Set image name run: | IMAGE_NAME=$(echo "${{ github.repository }}" | tr '[:upper:]' '[:lower:]') echo "IMAGE_NAME=$IMAGE_NAME" >> $GITHUB_ENV - name: Login to registry run: | echo "${{ secrets.GITEA_TOKEN }}" | docker login \ $REGISTRY \ -u "${{ github.actor }}" \ --password-stdin - name: Build image run: | cd repo docker build \ -t $REGISTRY/$IMAGE_NAME:latest \ -t $REGISTRY/$IMAGE_NAME:$SHORT_SHA \ -t $REGISTRY/$IMAGE_NAME:$BUILD_DATE \ . - name: Push image tags run: | docker push $REGISTRY/$IMAGE_NAME:latest docker push $REGISTRY/$IMAGE_NAME:$SHORT_SHA docker push $REGISTRY/$IMAGE_NAME:$BUILD_DATE