on: [push, pull_request] name: Continuous integration jobs: check: name: Check runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 - uses: cachix/install-nix-action@v20 - uses: icewind1991/attic-action@v1 with: name: ci instance: https://cache.icewind.me authToken: '${{ secrets.ATTIC_TOKEN }}' - uses: Swatinem/rust-cache@v1 - uses: lriesebos/nix-develop-command@6f5f4830884d1957767e920c51d6118c9b0ac828 with: command: "cargo check" fmt: name: Rustfmt runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 - uses: cachix/install-nix-action@v20 - uses: icewind1991/attic-action@v1 with: name: ci instance: https://cache.icewind.me authToken: '${{ secrets.ATTIC_TOKEN }}' - uses: Swatinem/rust-cache@v1 - uses: lriesebos/nix-develop-command@6f5f4830884d1957767e920c51d6118c9b0ac828 with: command: "cargo fmt" clippy: name: Clippy runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 - uses: cachix/install-nix-action@v20 - uses: icewind1991/attic-action@v1 with: name: ci instance: https://cache.icewind.me authToken: '${{ secrets.ATTIC_TOKEN }}' - uses: Swatinem/rust-cache@v1 - uses: lriesebos/nix-develop-command@6f5f4830884d1957767e920c51d6118c9b0ac828 with: command: "cargo clippy -- -D warnings" build: name: Build runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 - uses: cachix/install-nix-action@v20 - uses: icewind1991/attic-action@v1 with: name: ci instance: https://cache.icewind.me authToken: '${{ secrets.ATTIC_TOKEN }}' - run: nix build .#${{ matrix.target }} docker: runs-on: ubuntu-latest needs: build steps: - uses: actions/checkout@v3 - uses: cachix/install-nix-action@v20 - uses: icewind1991/attic-action@v1 with: name: ci instance: https://cache.icewind.me authToken: '${{ secrets.ATTIC_TOKEN }}' - run: nix build .#dockerImage - name: Push image if: github.ref == 'refs/heads/main' run: | skopeo copy --dest-creds="${{ secrets.DOCKERHUB_USERNAME }}:${{ secrets.DOCKERHUB_TOKEN }}" "docker-archive:$(nix build .#dockerImage --print-out-paths)" "docker://demostf/backup"