Skip to content

Commit

Permalink
Merge 48b021c into b5ef6f4
Browse files Browse the repository at this point in the history
  • Loading branch information
Alorel committed Nov 22, 2023
2 parents b5ef6f4 + 48b021c commit 1d70207
Show file tree
Hide file tree
Showing 17 changed files with 1,196 additions and 1 deletion.
1 change: 1 addition & 0 deletions .github/CODEOWNERS
Validating CODEOWNERS rules …
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
* @Alorel
1 change: 1 addition & 0 deletions .github/CODE_OF_CONDUCT.md
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
1. Don't be a cunt :slightly_smiling_face:
6 changes: 6 additions & 0 deletions .github/FUNDING.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
# These are supported funding model platforms

github:
- Alorel
custom:
- "https://paypal.me/alorel"
30 changes: 30 additions & 0 deletions .github/actions/prep-release/action.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
name: Prep release
description: Prepare the release
inputs:
release-type:
description: Release type
required: true
outputs:
in-sync:
description: Sync check
value: ${{ steps.sync-check.outputs.in-sync }}
runs:
using: composite
steps:
- name: Git identity
uses: alorel-actions/git-ident@v1

- name: Init toolchain
uses: alorel-actions/cargo/init@v1
id: toolchain
with:
cache-prefix: release

- name: cargo-bump
uses: alorel-actions/cargo/bump@v1
with:
release-type: ${{ inputs.release-type }}

- name: Sync check
id: sync-check
uses: alorel-actions/semantic-release-lite/sync-check@v0
33 changes: 33 additions & 0 deletions .github/actions/release/action.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
name: Release
description: Do the release
inputs:
version:
description: Version to release
required: true
changelog:
description: The changelog
required: true
issues-closed:
description: Issues we've closed
crates-io-token:
description: crates.io API token
required: true
runs:
using: composite
steps:
- uses: alorel-actions/cargo/release-git@v1
with:
version: ${{ inputs.version }}
changelog: ${{ inputs.changelog }}

- name: Publish crate
shell: bash
run: cargo publish --locked --token ${{ inputs.crates-io-token }}

- name: Notify
if: ${{ inputs.issues-closed }}
uses: alorel-actions/semantic-release-lite/notify@v0
with:
tag: ${{ inputs.version }}
issues: ${{ inputs.issues-closed }}
allow-out-of-sync: true
24 changes: 24 additions & 0 deletions .github/dependabot.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
# Please see the documentation for all configuration options:
# https://docs.github.com/github/administering-a-repository/configuration-options-for-dependency-updates

version: 2
updates:
- package-ecosystem: "github-actions" # See documentation for possible values
directory: "/" # Location of package manifests
schedule:
interval: "weekly"
commit-message:
prefix: deps
prefix-development: "deps(dev)"
- package-ecosystem: "cargo"
directory: "/"
schedule:
interval: "weekly"
commit-message:
prefix: deps
prefix-development: "deps(dev)"
ignore:
- dependency-name: "*"
update-types:
- version-update:semver-minor
- version-update:semver-patch
16 changes: 16 additions & 0 deletions .github/semantic.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
# https://github.com/Ezard/semantic-prs

enabled: true
commitsOnly: true
types:
- feat
- fix
- docs
- refactor
- build
- ci
- chore
- deps
- perf
scopes:
- dev
138 changes: 138 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,138 @@
name: CI

on:
push:
branches:
- master
paths-ignore:
- .github/CODE_OF_CONDUCT.md
- .github/CODEOWNERS
- .github/dependabot.yml
- .github/FUNDING.yml
- LICENSE
- .gitignore
pull_request:
paths-ignore:
- .github/CODE_OF_CONDUCT.md
- .github/CODEOWNERS
- .github/dependabot.yml
- .github/FUNDING.yml
- LICENSE
- .gitignore

permissions:
contents: read

env:
CARGO_INCREMENTAL: 0
RUSTFLAGS: --deny warnings

jobs:
test:
uses: ./.github/workflows/common-tmp.yml
with:
min-toolchain: 1.60.0
cargo-rdme-no-fail-on-warnings: true
# lint:
# name: Lint
# runs-on: ubuntu-latest
# steps:
# - name: Checkout
# uses: actions/checkout@v4
#
# - name: Init toolchain
# uses: alorel-actions/cargo/init@v1
# id: toolchain
# with:
# components: rustfmt,clippy
# cache-prefix: lint
# local: true
#
# - name: Fmt
# run: cargo fmt --check
#
# - name: Clippy
# run: cargo clippy --workspace --tests
#
# - name: Doc
# run: cargo doc --workspace --no-deps
#
# - name: cargo-rdme
# uses: alorel-actions/cargo/rdme@v1
# with:
# no-fail-on-warnings: true
#
# test:
# name: Rust ${{matrix.toolchain}}
# runs-on: ubuntu-latest
# strategy:
# fail-fast: false
# matrix:
# toolchain:
# - stable
# - 1.60.0
#
# steps:
# - name: Checkout
# uses: actions/checkout@v4
#
# - name: Init toolchain
# uses: alorel-actions/cargo/init@v1
# id: toolchain
# with:
# toolchain: ${{matrix.toolchain}}
# cache-prefix: test
# local: true
#
# - name: Build
# run: cargo build --workspace --tests --locked
#
# - name: Test
# run: cargo test --workspace --locked
#
# release:
# name: Release
# runs-on: ubuntu-latest
# if: ${{ github.ref == 'refs/heads/master' }}
# needs:
# - test
# - lint
# permissions:
# contents: write
# steps:
# - uses: actions/checkout@v4
# name: Checkout
# with:
# fetch-depth: 0
# fetch-tags: true
# token: ${{ secrets.GH_TOKEN }}
# - name: Parse
# id: parse
# uses: alorel-actions/semantic-release-lite@v0
# with:
# minor-types: |
# feat: Features
# patch-types: |
# fix: Bug Fixes
# perf: Performance
# trivial-types: |
# chore: Maintenance
# deps: Dependency updates
# ci: CI & Build
# build: CI & Build
# refactor: Refactors
# docs: Documentation
# - name: Prep release
# if: ${{ steps.parse.outputs.should-release }}
# id: prep
# uses: ./.github/actions/prep-release
# with:
# release-type: ${{ steps.parse.outputs.release-type }}
# - name: Release
# if: ${{ steps.prep.outputs.in-sync }}
# uses: ./.github/actions/release
# with:
# version: ${{ steps.parse.outputs.next-version }}
# changelog: ${{ steps.parse.outputs.changelog }}
# issues-closed: ${{ steps.parse.outputs.issues-closed }}
# crates-io-token: ${{ secrets.CRATES_IO_TOKEN }}
119 changes: 119 additions & 0 deletions .github/workflows/common-tmp.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,119 @@
name: Test
on:
workflow_call:
inputs:
cargo-rdme-no-fail-on-warnings:
description: Add the no-fail-on-warnings flag to cargo-rdme
type: boolean

cargo-rdme-intralinks-strip-links:
description: Add the intralinks-strip-links flag to cargo-rdme
type: boolean

nightly-toolchain:
description: Nightly toolchain to use
default: nightly
type: string

min-toolchain:
description: Minimum toolchain to test
required: true
type: string

permissions:
contents: read

env:
CARGO_INCREMENTAL: 0
RUSTFLAGS: --deny warnings

jobs:
lint:
name: Lint
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4

- name: Init toolchain
uses: alorel-actions/cargo/init@v1
id: toolchain
with:
components: rustfmt,clippy
cache-prefix: lint
local: true

- name: Fmt
run: cargo fmt --check

- name: Clippy
run: cargo clippy --workspace --tests

- name: Doc
run: cargo doc --workspace --no-deps && rm -rf target/doc

- name: cargo-rdme
uses: alorel-actions/cargo/rdme@v1
with:
no-fail-on-warnings: ${{ inputs.cargo-rdme-no-fail-on-warnings }}
intralinks-strip-links: ${{ inputs.cargo-rdme-intralinks-strip-links }}

nightly-test:
name: Rust nightly
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4

- name: Init toolchain
uses: alorel-actions/cargo/init@v1
with:
toolchain: ${{ inputs.nightly-toolchain }}
cache-prefix: test
local: true
components: llvm-tools-preview

- name: Examples & unit tests
uses: alorel-actions/cargo/llvm-cov@v1
with:
output: unit.lcov
args: --lcov --examples --tests --workspace

- name: Doc tests
uses: alorel-actions/cargo/llvm-cov@v1
with:
output: doc.lcov
args: --lcov --doctests --workspace

- name: Upload coverage
uses: coverallsapp/github-action@v2
continue-on-error: true
with:
files: unit.lcov doc.lcov

test:
name: Rust ${{matrix.toolchain}}
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
toolchain:
- stable
- ${{ inputs.min-toolchain }}
steps:
- name: Checkout
uses: actions/checkout@v4

- name: Init toolchain
uses: alorel-actions/cargo/init@v1
id: toolchain
with:
toolchain: ${{matrix.toolchain}}
cache-prefix: test
local: true

- name: Build
run: cargo build --workspace --tests --locked

- name: Test
run: cargo test --workspace --locked
2 changes: 1 addition & 1 deletion .idea/runConfigurations/Clippy__fix.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

0 comments on commit 1d70207

Please sign in to comment.