name: Docker Build and Push with Version on: push: branches: - main env: DOCKER_REGISTRY: r.evannregnault.dev DOCKER_USERNAME: ${{ secrets.DOCKER_USERNAME }} DOCKER_PASSWORD: ${{ secrets.DOCKER_PASSWORD }} jobs: build_and_push: runs-on: ubuntu-latest steps: - name: Checkout repository uses: actions/checkout@v2 - name: Set up Rust uses: actions-rs/toolchain@v1 with: profile: minimal toolchain: stable override: true - name: Install Cargo Dependencies run: cargo fetch --locked - name: Get App Version id: version run: cargo metadata --format-version 1 | jq -r '.packages[0].version' - name: Login to Docker registry run: echo "${{ env.DOCKER_PASSWORD }}" | docker login -u "${{ env.DOCKER_USERNAME }}" --password-stdin "${{ env.DOCKER_REGISTRY }}" - name: Build and push Docker image run: | docker build --pull --cache-from "${{ env.DOCKER_REGISTRY }}/your-image:${{ steps.version.outputs.version }}" --tag "${{ env.DOCKER_REGISTRY }}/your-image:${{ steps.version.outputs.version }}" . docker push "${{ env.DOCKER_REGISTRY }}/your-image:${{ steps.version.outputs.version }}"