name: Docker Build and Push with Version on: push: branches: - master 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 Docker uses: docker/build-push-action@v2 with: context: . push: false - name: Set up Rust uses: actions-rs/toolchain@v1 with: profile: minimal toolchain: stable override: true - name: Install libavutil development package run: sudo apt-get update && sudo apt-get install -y libavutil-dev - name: Install Cargo Dependencies run: cargo install metadata - 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 }}"