Skip to content

get core systems initialized #5219

get core systems initialized

get core systems initialized #5219

Workflow file for this run

# 🐻‍❄️📦 charted-server: Free, open source, and reliable Helm Chart registry made in Rust
# Copyright 2022-2024 Noelware, LLC. <team@noelware.org>
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
name: CI
on:
workflow_dispatch: {}
push:
branches:
- 'issues/gh-**'
- 'feat/**'
- main
paths-ignore:
- '.github/**'
- '.coder/**'
- '.devcontainer/**'
- '.vscode/**'
- 'docs/**'
- 'scripts/**'
- '.*ignore'
- '**.md'
- renovate.json
- LICENSE
pull_request:
types: [opened, synchronize]
branches:
- main
paths-ignore:
- '.coder/**'
- '.devcontainer/**'
- '.vscode/**'
- 'docs/**'
- '.*ignore'
- '**.md'
- renovate.json
- LICENSE
jobs:
ci:
name: Rust CI (${{matrix.runner == 'ubuntu-latest' && 'Linux (x86_64)' || matrix.runner == 'self-hosted' && 'Linux (arm64)' || matrix.runner == 'macos-latest' && 'macOS (x86_64)' || matrix.runner == 'macos-14-arm64' && 'macOS (M1)' || matrix.runner == 'windows-latest' && 'Windows' || 'Unknown'}}, Rust ${{matrix.rust-version}})
runs-on: ${{matrix.runner}}
strategy:
fail-fast: true
matrix:
runner: [ubuntu-latest, macos-latest, windows-latest]
rust-version: [nightly]
steps:
- name: Checkout repository
uses: actions/checkout@v4
# remove the `rust-toolchain.toml` since it'll be overwritten.
- run: rm ${GITHUB_WORKSPACE}/rust-toolchain.toml
shell: bash
- name: Setup Rust toolchain
uses: dtolnay/rust-toolchain@master
with:
toolchain: ${{matrix.rust-version}}
components: clippy, rustfmt
- name: Setup Rust cache
uses: Swatinem/rust-cache@v2
- name: Setup `VCPKG_ROOT` environment variable
if: matrix.runner == 'windows-latest'
id: vcpkg
run: |
echo "VCPKG_ROOT=$env:VCPKG_INSTALLATION_ROOT" | Out-File -FilePath $env:GITHUB_ENV -Append
echo "VCPKG_ROOT=$env:VCPKG_INSTALLATION_ROOT" | Out-File -FilePath $env:GITHUB_OUTPUT -Append
- name: Setup vcpkg cache
if: matrix.runner == 'windows-latest'
uses: actions/cache@v4
with:
key: vcpkg-cache
path: |
${{steps.vcpkg.outputs.VCPKG_ROOT}}
- name: Install libraries via `vcpkg`
run: vcpkg --triplet x64-windows-static-md install openssl sqlite3 libpq
if: matrix.runner == 'windows-latest'
# On Windows, we'll also need nasm for use with BoringSSL via aws-lc-sys.
- name: Install NASM on Windows
uses: ilammy/setup-nasm@v1
if: matrix.runner == 'windows-latest'
- name: Install `libpq` on macOS
if: matrix.runner == 'macos-latest'
run: brew install postgresql
- name: Install `cargo-nextest`
uses: taiki-e/cache-cargo-install-action@v2
with:
tool: cargo-nextest
- name: Build project
run: cargo build --all-features --workspace
- name: Run tests
run: cargo nextest run --all-features --workspace
- name: Run doctests
run: cargo test --doc --all-features --workspace
cargo-deny:
name: '`cargo deny`'
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Install `cargo-deny`
uses: taiki-e/cache-cargo-install-action@v2
with:
tool: cargo-deny
- name: Run "cargo deny"
run: cargo deny check all
report-missing-deps:
name: Report Missing Dependencies
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Install `cargo-machete`
uses: taiki-e/cache-cargo-install-action@v2
with:
tool: cargo-machete
- name: Run `cargo machete`
run: cargo machete
# we perform Cachix builds on each commit and each release, and Noel uses
# NixOS, so this is probably a must!
#
# useful for users who don't pin to a specific Git tag and pointed to `main` branch
nix-build:
name: Nix Build
runs-on: ubuntu-latest
if: github.event_name == 'push' && github.ref == 'refs/heads/main'
steps:
- name: Checkout source code
uses: actions/checkout@v4
- name: Install `nix` binary
uses: cachix/install-nix-action@v27
with:
nix_path: nixpkgs=channel:nixos-unstable
- name: Setup Cachix
uses: cachix/cachix-action@v15
with:
name: noelware
authToken: ${{secrets.CACHIX_AUTH_TOKEN}}
- name: Build `charted` binary
run: nix build .#charted
- name: Build `charted-helm-plugin` binary
run: nix build .#helm-plugin
clippy:
name: Clippy!
runs-on: ubuntu-latest
strategy:
matrix:
rust-version: [nightly]
steps:
- name: Checkout repository
uses: actions/checkout@v4
# remove the `rust-toolchain.toml` since it'll be overwritten.
- run: rm ${GITHUB_WORKSPACE}/rust-toolchain.toml
- name: Setup Rust toolchain
uses: dtolnay/rust-toolchain@master
with:
toolchain: ${{matrix.rust-version}}
components: clippy, rustfmt
- name: Setup Rust cache
uses: Swatinem/rust-cache@v2
- name: Clippy!
uses: auguwu/clippy-action@1.4.0
with:
all-features: true
check-args: --workspace --locked
token: ${{github.token}}