generated from EmbarkStudios/opensource-template
-
Notifications
You must be signed in to change notification settings - Fork 1
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
0 parents
commit e1d9ac8
Showing
15 changed files
with
846 additions
and
0 deletions.
There are no files selected for viewing
Validating CODEOWNERS rules …
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,5 @@ | ||
# Documentation for this file can be found on the GitHub website here: | ||
# https://docs.github.com/en/free-pro-team@latest/github/creating-cloning-and-archiving-repositories/about-code-owners | ||
# | ||
# TODO: uncomment this line and set the maintainers' GitHub usernames | ||
# * @first_maintainer_username @second_maintainer_username |
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,32 @@ | ||
--- | ||
name: Bug report | ||
about: Create a report to help us improve | ||
title: '' | ||
labels: bug | ||
assignees: '' | ||
|
||
--- | ||
|
||
**Describe the bug** | ||
A clear and concise description of what the bug is. | ||
|
||
**To Reproduce** | ||
Steps to reproduce the behavior: | ||
1. Go to '...' | ||
2. Click on '....' | ||
3. Scroll down to '....' | ||
4. See error | ||
|
||
**Expected behavior** | ||
A clear and concise description of what you expected to happen. | ||
|
||
**Screenshots** | ||
If applicable, add screenshots to help explain your problem. | ||
|
||
**Device:** | ||
- OS: [e.g. iOS] | ||
- Browser [e.g. chrome, safari] | ||
- Version [e.g. 22] | ||
|
||
**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,20 @@ | ||
--- | ||
name: Feature request | ||
about: Suggest an idea for this project | ||
title: '' | ||
labels: enhancement | ||
assignees: '' | ||
|
||
--- | ||
|
||
**Is your feature request related to a problem? Please describe.** | ||
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...] | ||
|
||
**Describe the solution you'd like** | ||
A clear and concise description of what you want to happen. | ||
|
||
**Describe alternatives you've considered** | ||
A clear and concise description of 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,13 @@ | ||
### Checklist | ||
|
||
* [ ] I have read the [Contributor Guide](../../CONTRIBUTING.md) | ||
* [ ] I have read and agree to the [Code of Conduct](../../CODE_OF_CONDUCT.md) | ||
* [ ] I have added a description of my changes and why I'd like them included in the section below | ||
|
||
### Description of Changes | ||
|
||
Describe your changes here | ||
|
||
### Related Issues | ||
|
||
List related issues 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,198 @@ | ||
# TODO: Replace this line with the commented ones to actually run the action in your repo(s) | ||
on: public | ||
# on: | ||
# push: | ||
# branches: | ||
# - main | ||
# tags: | ||
# - "*" | ||
# pull_request: | ||
|
||
name: CI | ||
jobs: | ||
lint: | ||
name: Lint | ||
runs-on: ubuntu-latest | ||
steps: | ||
- uses: actions/checkout@v3 | ||
- uses: actions-rs/toolchain@v1 | ||
with: | ||
toolchain: stable | ||
override: true | ||
|
||
# make sure all code has been formatted with rustfmt | ||
- name: check rustfmt | ||
run: | | ||
rustup component add rustfmt | ||
cargo fmt -- --check --color always | ||
# run clippy to verify we have no warnings | ||
- run: cargo fetch | ||
- name: cargo clippy | ||
run: | | ||
rustup component add clippy | ||
cargo clippy --all-targets --all-features -- -D warnings | ||
test: | ||
name: Test | ||
strategy: | ||
matrix: | ||
os: [ubuntu-latest, windows-latest, macOS-latest] | ||
runs-on: ${{ matrix.os }} | ||
steps: | ||
- uses: actions/checkout@v3 | ||
- uses: actions-rs/toolchain@v1 | ||
with: | ||
toolchain: stable | ||
override: true | ||
- run: cargo fetch | ||
- name: cargo test build | ||
# Note the use of release here means longer compile time, but much | ||
# faster test execution time. If you don't have any heavy tests it | ||
# might be faster to take off release and just compile in debug | ||
run: cargo build --tests --release | ||
- name: cargo test | ||
run: cargo test --release | ||
|
||
# TODO: Remove this check if you don't use cargo-deny in the repo | ||
deny-check: | ||
name: cargo-deny | ||
runs-on: ubuntu-latest | ||
steps: | ||
- uses: actions/checkout@v3 | ||
- uses: EmbarkStudios/cargo-deny-action@v1 | ||
|
||
# TODO: Remove this check if you don't publish the crate(s) from this repo | ||
publish-check: | ||
name: Publish Check | ||
runs-on: ubuntu-latest | ||
steps: | ||
- uses: actions/checkout@v3 | ||
- uses: actions-rs/toolchain@v1 | ||
with: | ||
toolchain: stable | ||
override: true | ||
- run: cargo fetch | ||
- name: cargo publish check | ||
run: cargo publish --dry-run | ||
|
||
# TODO: Remove this job if you don't release binaries | ||
# Replace occurances of $BIN_NAME with the name of your binary | ||
release: | ||
name: Release | ||
needs: [test, deny-check] | ||
if: startsWith(github.ref, 'refs/tags/') | ||
strategy: | ||
matrix: | ||
os: [ubuntu-latest, macOS-latest, windows-latest] | ||
include: | ||
- os: ubuntu-latest | ||
rust: stable | ||
target: x86_64-unknown-linux-musl | ||
bin: $BIN_NAME | ||
# We don't enable the progress feature when targeting | ||
# musl since there are some dependencies on shared libs | ||
features: "" | ||
- os: windows-latest | ||
rust: stable | ||
target: x86_64-pc-windows-msvc | ||
bin: $BIN_NAME.exe | ||
features: progress | ||
- os: macOS-latest | ||
rust: stable | ||
target: x86_64-apple-darwin | ||
bin: $BIN_NAME | ||
features: progress | ||
runs-on: ${{ matrix.os }} | ||
steps: | ||
- name: Install stable toolchain | ||
uses: actions-rs/toolchain@v1 | ||
with: | ||
toolchain: ${{ matrix.rust }} | ||
override: true | ||
target: ${{ matrix.target }} | ||
- name: Install musl tools | ||
if: matrix.os == 'ubuntu-latest' | ||
run: sudo apt-get install -y musl-tools | ||
- name: Checkout | ||
uses: actions/checkout@v3 | ||
- run: cargo fetch --target ${{ matrix.target }} | ||
- name: Release build | ||
shell: bash | ||
run: | | ||
if [ "${{ matrix.features }}" != "" ]; then | ||
cargo build --release --target ${{ matrix.target }} --features ${{ matrix.features }} | ||
else | ||
cargo build --release --target ${{ matrix.target }} | ||
fi | ||
- name: Package | ||
shell: bash | ||
run: | | ||
name=$BIN_NAME | ||
tag=$(git describe --tags --abbrev=0) | ||
release_name="$name-$tag-${{ matrix.target }}" | ||
release_tar="${release_name}.tar.gz" | ||
mkdir "$release_name" | ||
if [ "${{ matrix.target }}" != "x86_64-pc-windows-msvc" ]; then | ||
strip "target/${{ matrix.target }}/release/${{ matrix.bin }}" | ||
fi | ||
cp "target/${{ matrix.target }}/release/${{ matrix.bin }}" "$release_name/" | ||
cp README.md LICENSE-APACHE LICENSE-MIT "$release_name/" | ||
tar czvf "$release_tar" "$release_name" | ||
rm -r "$release_name" | ||
# Windows environments in github actions don't have the gnu coreutils installed, | ||
# which includes the shasum exe, so we just use powershell instead | ||
if [ "${{ matrix.os }}" == "windows-latest" ]; then | ||
echo "(Get-FileHash \"${release_tar}\" -Algorithm SHA256).Hash | Out-File -Encoding ASCII -NoNewline \"${release_tar}.sha256\"" | pwsh -c - | ||
else | ||
echo -n "$(shasum -ba 256 "${release_tar}" | cut -d " " -f 1)" > "${release_tar}.sha256" | ||
fi | ||
- name: Publish | ||
uses: softprops/action-gh-release@v1 | ||
with: | ||
draft: true | ||
files: "$BIN_NAME*" | ||
env: | ||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | ||
|
||
# TODO: Remove this job if you don't publish container images on each release | ||
# TODO: Create a repository on DockerHub with the same name as the GitHub repo | ||
# TODO: Add the new repo to the buildbot group with read & write permissions | ||
# TODO: Add the embarkbot dockerhub password to the repo secrets as DOCKERHUB_PASSWORD | ||
publish-container-images: | ||
name: Publish container images | ||
runs-on: ubuntu-latest | ||
if: startsWith(github.ref, 'refs/tags/') | ||
needs: [test, deny-check] | ||
steps: | ||
- name: Checkout | ||
uses: actions/checkout@v3 | ||
- name: Set up QEMU | ||
uses: docker/setup-qemu-action@v1 | ||
- name: Set up Docker Buildx | ||
uses: docker/setup-buildx-action@v1 | ||
- name: Login to Dockerhub | ||
uses: docker/login-action@v1 | ||
with: | ||
username: embarkbot | ||
password: ${{ secrets.DOCKERHUB_PASSWORD }} | ||
- name: Docker meta | ||
id: docker_meta | ||
uses: crazy-max/ghaction-docker-meta@v1 | ||
with: | ||
images: embarkstudios/${{ github.event.repository.name }} | ||
tag-semver: | | ||
{{version}} | ||
{{major}}.{{minor}} | ||
- name: Build and push | ||
uses: docker/build-push-action@v2 | ||
with: | ||
context: . | ||
file: ./Dockerfile | ||
push: true | ||
tags: ${{ steps.docker_meta.outputs.tags }} | ||
labels: ${{ steps.docker_meta.outputs.labels }} |
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,64 @@ | ||
# Publishes docs built off latest git main branch to a GitHub Pages site. | ||
# The docs root will then be served at https://$YOUR_USERNAME.github.io/$REPO_NAME/$CRATE_NAME/index.html | ||
# For example, https://embarkstudios.github.io/presser/presser/index.html | ||
# | ||
# You must also go to the Pages settings for your repo and set it to serve from Actions for this to work | ||
name: Publish Docs | ||
|
||
# TODO: Replace this line with the commented ones to actually run the action in your repo(s) | ||
on: public | ||
# on: | ||
# workflow_dispatch: | ||
# push: | ||
# branches: [ "main" ] | ||
|
||
env: | ||
CARGO_TERM_COLOR: always | ||
|
||
jobs: | ||
build: | ||
name: Build Docs | ||
|
||
runs-on: ubuntu-latest | ||
|
||
steps: | ||
- name: Checkout | ||
uses: actions/checkout@v3 | ||
- name: Setup Rust Env | ||
uses: actions-rs/toolchain@v1 | ||
with: | ||
toolchain: nightly | ||
override: true | ||
- name: Build Docs | ||
run: RUSTDOCFLAGS="--cfg docs_build" cargo doc | ||
- name: Setup Pages | ||
id: pages | ||
uses: actions/configure-pages@v2 | ||
- name: Upload artifact | ||
uses: actions/upload-pages-artifact@v1 | ||
with: | ||
# Upload entire doc folder | ||
path: './target/doc' | ||
|
||
deploy: | ||
name: Deploy to Pages | ||
|
||
needs: build | ||
|
||
# Grant GITHUB_TOKEN the permissions required to make a Pages deployment | ||
permissions: | ||
pages: write # to deploy to Pages | ||
id-token: write # to verify the deployment originates from an appropriate source | ||
|
||
# Deploy to the github-pages environment | ||
environment: | ||
name: github-pages | ||
url: ${{ steps.deployment.outputs.page_url }} | ||
|
||
# Specify runner + deployment step | ||
runs-on: ubuntu-latest | ||
|
||
steps: | ||
- name: Deploy to GitHub Pages | ||
id: deployment | ||
uses: actions/deploy-pages@v1 |
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,3 @@ | ||
/target | ||
**/*.rs.bk | ||
Cargo.lock |
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,24 @@ | ||
pull_request_rules: | ||
- name: automatic merge when CI passes and 1 reviews | ||
conditions: | ||
- "#approved-reviews-by>=1" | ||
- "#review-requested=0" | ||
- "#changes-requested-reviews-by=0" | ||
- "#review-threads-unresolved=0" | ||
- base=main | ||
- label!=block-automerge | ||
# TODO: If you're not a Rust project and aren't using the bundled rust-ci workflows, | ||
# remove these or change them to the relevant CI job names: | ||
- check-success=Lint | ||
- check-success=Build & Test (ubuntu-latest) | ||
- check-success=Build & Test (windows-latest) | ||
- check-success=Build & Test (macOS-latest) | ||
- check-success=Publish Check | ||
actions: | ||
merge: | ||
method: squash | ||
- name: delete head branch after merge | ||
conditions: | ||
- merged | ||
actions: | ||
delete_head_branch: {} |
Oops, something went wrong.