name: Release Smoke Test on: push: tags: - '[0-9]+.[0-9]+.[0-9]+' - 'v[0-9]+.[0-9]+.[0-9]+' release: types: [published] env: CARGO_TERM_COLOR: always jobs: smoke-test: name: Smoke Test runs-on: ubuntu-latest steps: - name: Checkout code uses: actions/checkout@v4 - name: Set up Rust uses: dtolnay/rust-toolchain@stable with: components: rustfmt, clippy - name: Check formatting run: cargo fmt --all -- --check - name: Run Clippy Lints run: cargo clippy -- -D warnings - name: Build release run: cargo build --release --verbose - name: Run tests run: cargo test --verbose - name: Smoke test — binary runs run: ./target/release/lapctl --version - name: Upload release artifact uses: actions/upload-artifact@v4 with: name: lapctl-${{ github.ref_name }} path: ./target/release/lapctl - name: Publish to crates.io env: CARGO_REGISTRY_TOKEN: ${{ secrets.CARGO_REGISTRY_TOKEN }} run: cargo publish publish-aur: name: Publish to AUR needs: smoke-test runs-on: ubuntu-latest steps: - name: Checkout code uses: actions/checkout@v4 - name: Set up Rust uses: dtolnay/rust-toolchain@stable - name: Setup pacman uses: archlinux/actions/setup-pacman@v1 with: update: true - name: Install base-devel (for makepkg) run: sudo pacman -S --noconfirm --needed base-devel - name: Get version id: version run: echo "version=${GITHUB_REF_NAME#v}" >> "$GITHUB_OUTPUT" - name: Generate PKGBUILD with cargo-aur run: | cargo install cargo-aur mkdir -p aur-pkg cargo aur --output aur-pkg - name: Generate .SRCINFO working-directory: aur-pkg run: makepkg --printsrcinfo > .SRCINFO - name: Push to AUR uses: KSXGitHub/github-actions-deploy-aur@v2.5.0 with: pkgname: lapctl-bin pkgver: ${{ steps.version.outputs.version }} assets: | aur-pkg/PKGBUILD aur-pkg/.SRCINFO ssh_private_key: ${{ secrets.AUR_SSH_PRIVATE_KEY }} commit_username: ${{ github.actor }} commit_email: ${{ github.actor }}@users.noreply.github.com