name: build-and-push-docker-image on: push: branches: # Run on pushing branches like `release/1.0.0` - "release/v*.*.*" jobs: docker: runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 - name: Extract build args # Extract version from branch name # Example: branch name `release/v1.0.0` sets up env.VERSION=1.0.0 run: | echo "VERSION=${GITHUB_REF_NAME#release/v}" >> $GITHUB_ENV - name: Login to Docker Hub uses: docker/login-action@v1 with: username: ${{ secrets.DOCKER_NEOSMEMO_USERNAME }} password: ${{ secrets.DOCKER_NEOSMEMO_TOKEN }} - name: Set up Docker Buildx id: buildx uses: docker/setup-buildx-action@v1 - name: Build and Push id: docker_build uses: docker/build-push-action@v2 with: context: ./ file: ./Dockerfile push: true tags: ${{ secrets.DOCKER_NEOSMEMO_USERNAME }}/memos:${{ env.VERSION }}