name: Build and Push Docker Image on: push: branches: - main - master jobs: docker: runs-on: ubuntu-latest permissions: contents: read packages: write steps: - name: Checkout repository uses: actions/checkout@v4 - name: Generate tags id: vars run: | echo "SHORT_SHA=$(git rev-parse --short HEAD)" >> $GITHUB_ENV echo "BUILD_DATE=$(date -u +'%Y%m%d-%H%M%S')" >> $GITHUB_ENV - name: Login to Gitea Container Registry uses: docker/login-action@v3 with: registry: ${{ github.server_url }} username: ${{ github.actor }} password: ${{ secrets.GITEA_TOKEN }} - name: Set image name run: | IMAGE_NAME=$(echo "${{ github.repository }}" | tr '[:upper:]' '[:lower:]') echo "IMAGE_NAME=$IMAGE_NAME" >> $GITHUB_ENV - name: Build Docker image run: | docker build \ -t ${{ github.server_url }}/${IMAGE_NAME}:latest \ -t ${{ github.server_url }}/${IMAGE_NAME}:${SHORT_SHA} \ -t ${{ github.server_url }}/${IMAGE_NAME}:${BUILD_DATE} \ . - name: Push latest tag run: | docker push ${{ github.server_url }}/${IMAGE_NAME}:latest - name: Push commit hash tag run: | docker push ${{ github.server_url }}/${IMAGE_NAME}:${SHORT_SHA} - name: Push datetime tag run: | docker push ${{ github.server_url }}/${IMAGE_NAME}:${BUILD_DATE}