name: Docker on: push: tags: - '*' env: IMAGE_NAME: feature-server jobs: push: runs-on: ubuntu-latest if: github.event_name == 'push' steps: - name: Checkout code uses: actions/checkout@v3 - name: prepare tag run: | export IMAGE_ID=jambonz/$IMAGE_NAME # Strip git ref prefix from version export VERSION=$(echo "${{ github.ref }}" | sed -e 's,.*/\(.*\),\1,') # Strip "v" prefix from tag name [[ "${{ github.ref }}" == "refs/tags/"* ]] && VERSION=$(echo $VERSION | sed -e 's/^v//') # Use Docker `latest` tag convention [ "$VERSION" == "main" ] && export VERSION=latest echo IMAGE_ID=$IMAGE_ID echo VERSION=$VERSION - name: Login to Docker Hub uses: docker/login-action@v2 with: username: ${{ secrets.DOCKERHUB_USERNAME }} password: ${{ secrets.DOCKERHUB_TOKEN }} - name: Build and push Docker image uses: docker/build-push-action@v4 with: context: . push: true tags: ${{ env.IMAGE_ID }}:${{ env.VERSION }} build-args: | GITHUB_REPOSITORY=$GITHUB_REPOSITORY GITHUB_REF=$GITHUB_REF env: IMAGE_ID: ${{ env.IMAGE_ID }} VERSION: ${{ env.VERSION }}