name: Build and upload to Attic cache
on:
  push:
    branches:
      - "main"

jobs:
  build_arm:
    runs-on: ubuntu-22.04-arm
    steps:
      - uses: actions/checkout@v4
      - uses: DeterminateSystems/nix-installer-action@v16
        with:
          extra-conf: |
            keep-going = true
            fallback = true
      - uses: DeterminateSystems/flake-checker-action@v9
      - uses: ryanccn/attic-action@v0
        with:
          endpoint: ${{ secrets.ATTIC_ENDPOINT }}
          cache: ${{ vars.ATTIC_CACHE }}
          token: ${{ secrets.ATTIC_TOKEN }}
      # free useless disk space
      - run: 'bash ci/util_free_space_extreme.sh'
      # TODO: figure out how to use flake checks and use those to build it
      - run: 'nix develop .#ci --command bash ci/run_builds.sh'

  build_x86-64_packages:
    runs-on: ubuntu-22.04
    steps:
      - uses: actions/checkout@v4
      - uses: DeterminateSystems/nix-installer-action@v16
        with:
          extra-conf: |
            keep-going = true
            fallback = true
      - uses: DeterminateSystems/flake-checker-action@v9
      - uses: ryanccn/attic-action@v0
        with:
          endpoint: ${{ secrets.ATTIC_ENDPOINT }}
          cache: ${{ vars.ATTIC_CACHE }}
          token: ${{ secrets.ATTIC_TOKEN }}
      - run: 'nix develop .#ci --command bash ci/run_builds.sh packages'

  build_x86-64:
    runs-on: ubuntu-22.04
    steps:
      - uses: actions/checkout@v4
      - uses: DeterminateSystems/nix-installer-action@v16
        with:
          extra-conf: |
            keep-going = true
            fallback = true
      - uses: DeterminateSystems/flake-checker-action@v9
      - uses: ryanccn/attic-action@v0
        with:
          endpoint: ${{ secrets.ATTIC_ENDPOINT }}
          cache: ${{ vars.ATTIC_CACHE }}
          token: ${{ secrets.ATTIC_TOKEN }}
      # free useless disk space
      - run: 'bash ci/util_free_space_extreme.sh'
      # TODO: figure out how to use flake checks and use those to build it
      - run: 'nix develop .#ci --command bash ci/run_builds.sh config'