generated from EmbarkStudios/opensource-template
-
Notifications
You must be signed in to change notification settings - Fork 7
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
1 parent
ad8d04f
commit 9624e09
Showing
8 changed files
with
39 additions
and
280 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 |
---|---|---|
@@ -1,198 +1,60 @@ | ||
# 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: | ||
on: | ||
push: | ||
branches: | ||
- main | ||
tags: | ||
- "*" | ||
pull_request: | ||
|
||
name: CI | ||
jobs: | ||
lint: | ||
name: Lint | ||
runs-on: ubuntu-latest | ||
runs-on: ubuntu-22.04 | ||
steps: | ||
- uses: actions/checkout@v3 | ||
- uses: actions-rs/toolchain@v1 | ||
- uses: dtolnay/rust-toolchain@stable | ||
with: | ||
toolchain: stable | ||
override: true | ||
components: "clippy, rustfmt" | ||
- uses: Swatinem/rust-cache@v2 | ||
|
||
# make sure all code has been formatted with rustfmt | ||
- name: check rustfmt | ||
run: | | ||
rustup component add rustfmt | ||
cargo fmt -- --check --color always | ||
run: 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 | ||
run: cargo clippy --all-targets --all-features -- -D warnings | ||
|
||
test: | ||
name: Test | ||
strategy: | ||
matrix: | ||
os: [ubuntu-latest, windows-latest, macOS-latest] | ||
os: [ubuntu-22.04, windows-12] | ||
runs-on: ${{ matrix.os }} | ||
steps: | ||
- uses: actions/checkout@v3 | ||
- uses: actions-rs/toolchain@v1 | ||
with: | ||
toolchain: stable | ||
override: true | ||
- uses: dtolnay/rust-toolchain@stable | ||
- 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 | ||
run: cargo build --tests --all-features | ||
- name: cargo test | ||
run: cargo test --release | ||
run: cargo test --all-features | ||
|
||
# TODO: Remove this check if you don't use cargo-deny in the repo | ||
deny-check: | ||
name: cargo-deny | ||
runs-on: ubuntu-latest | ||
runs-on: ubuntu-22.04 | ||
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 | ||
runs-on: ubuntu-22.04 | ||
steps: | ||
- uses: actions/checkout@v3 | ||
- uses: actions-rs/toolchain@v1 | ||
with: | ||
toolchain: stable | ||
override: true | ||
- uses: dtolnay/rust-toolchain@stable | ||
- 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 was deleted.
Oops, something went wrong.
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
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
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 @@ | ||
[package] | ||
name = "tame-index" | ||
version = "0.1.0" | ||
edition = "2021" | ||
rust-version = "1.70.0" | ||
|
||
[dependencies] |
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
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
Empty file.