# Copyright (c) 2024 Andrew Brower. # This file is part of Crawlspace. # # Crawlspace is free software: you can redistribute it and/or # modify it under the terms of the GNU Affero General Public # License as published by the Free Software Foundation, either # version 3 of the License, or (at your option) any later version. # # Crawlspace is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU # Affero General Public License for more details. # # You should have received a copy of the GNU Affero General Public # License along with Crawlspace. If not, see # . name: CI on: push: release: workflow_dispatch: inputs: buildType: description: 'Build Type' required: true default: 'Release' type: choice options: - Release - Debug version: description: 'Version Tag (defaults to commit hash)' required: false type: string env: RUSTFLAGS: "-Dwarnings" jobs: clippy: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - uses: DeterminateSystems/nix-installer-action@main - uses: DeterminateSystems/magic-nix-cache-action@main - name: Run clippy run: nix develop --command cargo clippy --all-targets --all-features build_release: needs: clippy runs-on: ubuntu-latest if: ${{ (github.event_name == 'release') || github.event_name == 'workflow_dispatch' }} env: BUILD_COMMAND: ${{ (github.event_name == 'workflow_dispatch' && inputs.buildType == 'Release') && 'nix build .#release' || 'nix build .' }} steps: - uses: actions/checkout@v4 - uses: DeterminateSystems/nix-installer-action@main - uses: DeterminateSystems/magic-nix-cache-action@main - name: Build Crawlspace run: $BUILD_COMMAND - uses: actions/upload-artifact@v4 with: path: ./result/bin/crawlspace