-
Notifications
You must be signed in to change notification settings - Fork 2
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Set up CI/CD and perform some release prep
- Loading branch information
Showing
13 changed files
with
697 additions
and
5 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,44 @@ | ||
--- | ||
name: Bug report | ||
about: Create a report to help us improve | ||
title: '' | ||
labels: bug | ||
assignees: '' | ||
|
||
--- | ||
|
||
## Bug description | ||
|
||
<!-- A clear and concise description of what the bug is. --> | ||
|
||
- Would you like to work on a fix? [y/n] | ||
|
||
## To Reproduce | ||
|
||
Steps to reproduce the behavior: | ||
|
||
1. ... | ||
2. ... | ||
3. ... | ||
4. ... | ||
|
||
<!-- Make sure you are able to reproduce the bug in the main branch, too. --> | ||
|
||
## Expected behavior | ||
|
||
<!-- A clear and concise description of what you expected to happen. --> | ||
|
||
## Screenshots | ||
|
||
<!-- If applicable, add screenshots to help explain your problem. --> | ||
|
||
## Environment | ||
|
||
<!-- Please fill the following information. --> | ||
|
||
- OS: [e.g. Ubuntu 20.04] | ||
- ssstar version: [e.g. 0.1.0] | ||
|
||
## Additional context | ||
|
||
<!-- Add any other context about the problem here. --> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
blank_issues_enabled: true |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,28 @@ | ||
--- | ||
name: Feature request | ||
about: Suggest an idea for this project | ||
title: '' | ||
labels: enhancement | ||
assignees: '' | ||
|
||
--- | ||
|
||
## Motivations | ||
|
||
<!-- | ||
If your feature request is related to a problem, please describe it. | ||
--> | ||
|
||
- Would you like to implement this feature? [y/n] | ||
|
||
## Solution | ||
|
||
<!-- Describe the solution you'd like. --> | ||
|
||
## Alternatives | ||
|
||
<!-- Describe any alternative solutions or features you've considered. --> | ||
|
||
## Additional context | ||
|
||
<!-- Add any other context or screenshots about the feature request here. --> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,12 @@ | ||
<!-- Please explain the changes you made --> | ||
|
||
<!-- | ||
Please, make sure: | ||
- you have read the contributing guidelines: | ||
https://github.com/elastio/ssstar/blob/main/docs/CONTRIBUTING.md | ||
- you have formatted the code using rustfmt: | ||
https://github.com/rust-lang/rustfmt | ||
- you have checked that all tests pass, by running `cargo test --all` | ||
- you have updated the changelog (if needed): | ||
https://github.com/elastio/ssstar/blob/main/CHANGELOG.md | ||
--> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,15 @@ | ||
version: 2 | ||
updates: | ||
- package-ecosystem: "cargo" | ||
# Look for `Cargo.toml` and `Cargo.lock` in the root directory | ||
directory: "/" | ||
# Check for updates every Monday | ||
schedule: | ||
interval: "weekly" | ||
open-pull-requests-limit: 10 | ||
- package-ecosystem: "github-actions" | ||
directory: "/" | ||
# Check for updates every Monday | ||
schedule: | ||
interval: "weekly" | ||
open-pull-requests-limit: 10 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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 }} | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,121 @@ | ||
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=ssstar${{ 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=ssstar-${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/ssstar-*.tar.gz | ||
target/${{ matrix.job.target }}/release/ssstar-*.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 }} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,132 @@ | ||
name: CI # Continuous Integration | ||
|
||
on: | ||
push: | ||
branches: | ||
- master | ||
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/[email protected] | ||
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' | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,7 @@ | ||
# Changelog | ||
All notable changes to this project will be documented in this file. | ||
|
||
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/), | ||
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). | ||
|
||
## [Unreleased] |
Oops, something went wrong.