Skip to content

Commit

Permalink
first commit
Browse files Browse the repository at this point in the history
  • Loading branch information
madskjeldgaard committed Apr 9, 2024
0 parents commit e815a97
Show file tree
Hide file tree
Showing 19 changed files with 1,746 additions and 0 deletions.
Empty file added .cargo/config.toml
Empty file.
30 changes: 30 additions & 0 deletions .github/workflows/audit.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
name: Security audit

on:
schedule:
# Runs at 00:00 UTC everyday
- cron: '0 0 * * *'
push:
paths:
- '**/Cargo.toml'
- '**/Cargo.lock'
pull_request:

jobs:
audit:
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v3
# Ensure that the latest version of Cargo is installed
- name: Install Rust
uses: actions-rs/toolchain@v1
with:
toolchain: stable
profile: minimal
override: true
- uses: Swatinem/rust-cache@v1
- uses: actions-rs/audit-check@v1
with:
token: ${{ secrets.GITHUB_TOKEN }}

122 changes: 122 additions & 0 deletions .github/workflows/cd.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,122 @@
# name: CD # Continuous Deployment
#
# on:
# push:
# tags:
# - '[v]?[0-9]+.[0-9]+.[0-9]+'
#
# jobs:
#
# publish:
# name: Publishing for ${{ matrix.job.os }}
# runs-on: ${{ matrix.job.os }}
# strategy:
# matrix:
# rust: [stable]
# job:
# - os: macos-latest
# os-name: macos
# target: x86_64-apple-darwin
# architecture: x86_64
# binary-postfix: ""
# use-cross: false
# - os: ubuntu-latest
# os-name: linux
# target: x86_64-unknown-linux-gnu
# architecture: x86_64
# binary-postfix: ""
# use-cross: false
# - os: windows-latest
# os-name: windows
# target: x86_64-pc-windows-msvc
# architecture: x86_64
# binary-postfix: ".exe"
# use-cross: false
# - os: ubuntu-latest
# os-name: linux
# target: aarch64-unknown-linux-gnu
# architecture: arm64
# binary-postfix: ""
# use-cross: true
# - os: ubuntu-latest
# os-name: linux
# target: i686-unknown-linux-gnu
# architecture: i686
# binary-postfix: ""
# use-cross: true
#
# steps:
# - name: Checkout repository
# uses: actions/checkout@v3
# - name: Install Rust toolchain
# uses: actions-rs/toolchain@v1
# with:
# toolchain: ${{ matrix.rust }}
# profile: minimal
# override: true
# - uses: Swatinem/rust-cache@v1
# - name: Cargo build
# uses: actions-rs/cargo@v1
# with:
# command: build
# use-cross: ${{ matrix.job.use-cross }}
# toolchain: ${{ matrix.rust }}
# args: --release --target ${{ matrix.job.target }}
#
# - name: install strip command
# shell: bash
# run: |
# if [[ ${{ matrix.job.target }} == aarch64-unknown-linux-gnu ]]; then
# sudo apt update
# sudo apt-get install -y binutils-aarch64-linux-gnu
# fi
# - name: Packaging final binary
# shell: bash
# run: |
# cd target/${{ matrix.job.target }}/release
#
# ####### reduce binary size by removing debug symbols #######
# BINARY_NAME=music-math${{ matrix.job.binary-postfix }}
# if [[ ${{ matrix.job.target }} == aarch64-unknown-linux-gnu ]]; then
# GCC_PREFIX="aarch64-linux-gnu-"
# else
# GCC_PREFIX=""
# fi
# "$GCC_PREFIX"strip $BINARY_NAME
#
# ########## create tar.gz ##########
# RELEASE_NAME=music-math-${GITHUB_REF/refs\/tags\//}-${{ matrix.job.os-name }}-${{ matrix.job.architecture }}
# tar czvf $RELEASE_NAME.tar.gz $BINARY_NAME
#
# ########## create sha256 ##########
# if [[ ${{ runner.os }} == 'Windows' ]]; then
# certutil -hashfile $RELEASE_NAME.tar.gz sha256 | grep -E [A-Fa-f0-9]{64} > $RELEASE_NAME.sha256
# else
# shasum -a 256 $RELEASE_NAME.tar.gz > $RELEASE_NAME.sha256
# fi
# - name: Releasing assets
# uses: softprops/action-gh-release@v1
# with:
# files: |
# target/${{ matrix.job.target }}/release/music-math-*.tar.gz
# target/${{ matrix.job.target }}/release/music-math-*.sha256
# env:
# GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
#
# publish-cargo:
# name: Publishing to Cargo
# runs-on: ubuntu-latest
# steps:
# - name: Checkout repository
# uses: actions/checkout@v3
# - uses: actions-rs/toolchain@v1
# with:
# toolchain: stable
# profile: minimal
# override: true
# - uses: Swatinem/rust-cache@v1
# - uses: actions-rs/cargo@v1
# with:
# command: publish
# args: --token ${{ secrets.CARGO_API_KEY }}
#
132 changes: 132 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,132 @@
name: CI # Continuous Integration

on:
push:
branches:
- main
pull_request:

jobs:

test:
name: Test Suite
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v3
- name: Install Rust toolchain
uses: actions-rs/toolchain@v1
with:
toolchain: stable
profile: minimal
override: true
- uses: Swatinem/rust-cache@v1
- uses: actions-rs/cargo@v1
with:
command: test
args: --all-features --workspace

rustfmt:
name: Rustfmt
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v3
- name: Install Rust toolchain
uses: actions-rs/toolchain@v1
with:
toolchain: stable
profile: minimal
override: true
components: rustfmt
- uses: Swatinem/rust-cache@v1
- name: Check formatting
uses: actions-rs/cargo@v1
with:
command: fmt
args: --all -- --check

clippy:
name: Clippy
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v3
- name: Install Rust toolchain
uses: actions-rs/toolchain@v1
with:
toolchain: stable
profile: minimal
override: true
components: clippy
- uses: Swatinem/rust-cache@v1
- name: Clippy check
uses: actions-rs/cargo@v1
with:
command: clippy
args: --all-targets --all-features --workspace -- -D warnings

docs:
name: Docs
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v3
- name: Install Rust toolchain
uses: actions-rs/toolchain@v1
with:
toolchain: stable
profile: minimal
override: true
- uses: Swatinem/rust-cache@v1
- name: Check documentation
env:
RUSTDOCFLAGS: -D warnings
uses: actions-rs/cargo@v1
with:
command: doc
args: --no-deps --document-private-items --all-features --workspace --examples

# publish-dry-run:
# name: Publish dry run
# runs-on: ubuntu-latest
# steps:
# - name: Checkout repository
# uses: actions/checkout@v3
# - name: Install Rust toolchain
# uses: actions-rs/toolchain@v1
# with:
# toolchain: stable
# profile: minimal
# override: true
# - uses: Swatinem/rust-cache@v1
# - uses: actions-rs/cargo@v1
# with:
# command: publish
# args: --dry-run

# coverage:
# name: Code coverage
# runs-on: ubuntu-latest
# steps:
# - name: Checkout repository
# uses: actions/checkout@v3
# - name: Install Rust toolchain
# uses: actions-rs/toolchain@v1
# with:
# toolchain: stable
# profile: minimal
# override: true
# - uses: Swatinem/rust-cache@v1
# - name: Run cargo-tarpaulin
# uses: actions-rs/tarpaulin@v0.1
# with:
# args: '--all-features --workspace --ignore-tests --out Lcov'
# - name: Upload to Coveralls
# # upload only if push
# if: ${{ github.event_name == 'push' }}
# uses: coverallsapp/github-action@master
# with:
# github-token: ${{ secrets.GITHUB_TOKEN }}
# path-to-lcov: './lcov.info'

6 changes: 6 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
# IDEs
.idea
.vs

target

27 changes: 27 additions & 0 deletions .pre-commit-config.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
# See https://pre-commit.com for more information
# See https://pre-commit.com/hooks.html for more hooks
repos:
- repo: https://github.com/pre-commit/pre-commit-hooks
rev: v3.2.0
hooks:
- id: trailing-whitespace
- id: end-of-file-fixer
- id: check-toml
- id: check-yaml
- id: pretty-format-json
- id: check-added-large-files


- repo: https://github.com/matthorgan/pre-commit-conventional-commits
rev: master
hooks:
- id: conventional-commit-check
stages:
- commit-msg

- repo: https://github.com/doublify/pre-commit-rust
rev: v1.0
hooks:
- id: fmt
- id: cargo-check
- id: clippy
Empty file added CHANGELOG.md
Empty file.

0 comments on commit e815a97

Please sign in to comment.