name: "Nix build" on: pull_request: push: branches: - main jobs: build-docker: runs-on: debian-latest steps: - uses: actions/checkout@v3 - name: "Install prerequisites" run: | apt update apt install -y sudo zstd - name: "Cache Nix store" uses: actions/cache@v3.0.8 id: nix-cache with: path: /nix key: "tclip-cache-v1" - name: Install Nix uses: https://github.com/cachix/install-nix-action@v22 with: extra_nix_config: "experimental-features = nix-command flakes" nix_path: nixpkgs=channel:nixos-23.05 - name: Remove access_tokens run: sed -i '/^access-tokens/d' /etc/nix/nix.conf - name: "Basic CLI and web build" run: | nix build .#tclip .#tclipd - name: "Docker image build" run: | nix build .#docker - name: Push image with Skopeo run: | nix-env -i skopeo -f '' wget https://raw.githubusercontent.com/containers/skopeo/main/default-policy.json && mkdir /etc/containers && mv default-policy.json /etc/containers/policy.json skopeo login --username arch --password $REGISTRY_TOKEN git.gmem.ca skopeo copy docker-archive:result docker://git.gmem.ca/arch/tclip:latest env: REGISTRY_TOKEN: ${{ secrets.REGISTRY_TOKEN }} - name: "Portable service build" run: | nix build .#portable-service mkdir -p var cp ./result/*.raw ./var - uses: https://github.com/actions/upload-artifact@v3 with: name: portable-service path: ./var/*.raw build-docker-arm: runs-on: debian-latest-arm steps: - uses: actions/checkout@v3 - name: "Install prerequisites" run: | apt update apt install -y sudo zstd - name: "Cache Nix store" uses: actions/cache@v3.0.8 id: nix-cache with: path: /nix key: "tclip-cache-v1" - name: Install Nix uses: https://github.com/cachix/install-nix-action@v22 with: extra_nix_config: "experimental-features = nix-command flakes" nix_path: nixpkgs=channel:nixos-23.05 - name: Remove access_tokens run: sed -i '/^access-tokens/d' /etc/nix/nix.conf - name: "Basic CLI and web build" run: | nix build .#tclip .#tclipd - name: "Docker image build" run: | nix build .#docker - name: Push image with Skopeo run: | nix-env -i skopeo -f '' wget https://raw.githubusercontent.com/containers/skopeo/main/default-policy.json && mkdir /etc/containers && mv default-policy.json /etc/containers/policy.json skopeo login --username arch --password $REGISTRY_TOKEN git.gmem.ca skopeo copy docker-archive:result docker://git.gmem.ca/arch/tclip:arm env: REGISTRY_TOKEN: ${{ secrets.REGISTRY_TOKEN }} - name: "Portable service build" run: | nix build .#portable-service mkdir -p var cp ./result/*.raw ./var - uses: https://github.com/actions/upload-artifact@v3 with: name: portable-service path: ./var/*.raw