name: Rust-build

on:
  push:
    branches:
      - "main"

jobs:
  build:
    runs-on: ubuntu-latest
    container:
      image: catthehacker/ubuntu:act-latest
    steps:

      - name: Check-out
        uses: actions/checkout@v3

      - name: Install stable toolchain
        uses: https://github.com/actions-rs/toolchain@v1
        with:
          profile: minimal
          toolchain: stable
          override: true

      - name: Run cargo check
        uses: https://github.com/actions-rs/cargo@v1
        with:
          command: check

      - name: Test
        run: cargo test

      - name: Build
        run: cargo build --release

      - name: Set up Docker Buildx
        uses: docker/setup-buildx-action@v2

      - name: Login to registry
        uses: docker/login-action@v2
        with:
          registry: gitea.squi.fr
          username: ${{ secrets.DOCKER_USERNAME }}
          password: ${{ secrets.DOCKER_PASSWORD }}

      - name: Build and push
        uses: docker/build-push-action@v4
        env:
          ACTIONS_RUNTIME_TOKEN: '' # See https://gitea.com/gitea/act_runner/issues/119
        with:
          context: .
          file: ./Dockerfile
          platforms: |
            linux/amd64
            linux/arm64            
          push: true
          tags: gitea.squi.fr/justine/sqpad:latest
