name: Continuous master build on: push: branches: - master jobs: clippy: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - uses: dtolnay/rust-toolchain@stable - uses: Swatinem/rust-cache@v2 - name: Lint run: | cargo clippy cargo clippy --release test: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - uses: dtolnay/rust-toolchain@stable - run: | sudo apt update && sudo apt install -y libnss-wrapper scdoc - uses: Swatinem/rust-cache@v2 - name: Test env: NSS_WRAPPER_PASSWD: contrib/fixtures/passwd NSS_WRAPPER_GROUP: contrib/fixtures/group run: | cargo test LD_PRELOAD=libnss_wrapper.so cargo test --features nsswrapper nsswrapper_ - name: Generate manpage run: | scdoc < contrib/man/tuigreet-1.scd > /dev/null build: strategy: matrix: arch: - { name: "x86_64", os: "ubuntu-latest", target: "x86_64-unknown-linux-gnu", cross: false } runs-on: ${{ matrix.arch.os }} steps: - uses: actions/checkout@v4 - uses: dtolnay/rust-toolchain@stable - uses: Swatinem/rust-cache@v2 with: shared-key: cargo-cache-${{ matrix.arch.target }} - name: Build run: | cargo build --release --target=${{ matrix.arch.target }} - name: Rename artifact run: mv target/${{ matrix.arch.target }}/release/tuigreet target/${{ matrix.arch.target }}/release/tuigreet-dev-${{ matrix.arch.name }} - name: Upload artifact uses: actions/upload-artifact@v4 with: name: tuigreet-dev-${{ matrix.arch.name }} path: target/${{ matrix.arch.target }}/release/tuigreet-dev-${{ matrix.arch.name }} package: runs-on: ubuntu-latest needs: build steps: - name: Download artifacts uses: actions/download-artifact@v4 with: path: target/out - name: Create release uses: ncipollo/release-action@v1 with: token: ${{ secrets.GITHUB_TOKEN }} name: tip prerelease: true tag: tip commit: ${{ github.sha }} artifacts: target/out/*/* allowUpdates: true removeArtifacts: true