chore: initial sanitized public snapshot
This commit is contained in:
@@ -0,0 +1,94 @@
|
||||
name: CI
|
||||
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
- main
|
||||
pull_request:
|
||||
workflow_dispatch:
|
||||
|
||||
permissions:
|
||||
contents: read
|
||||
|
||||
jobs:
|
||||
fast-gates:
|
||||
name: Fast Gates
|
||||
runs-on: ubuntu-latest
|
||||
timeout-minutes: 75
|
||||
env:
|
||||
CARGO_TERM_COLOR: always
|
||||
CARGO_BUILD_JOBS: "2"
|
||||
CARGO_TARGET_DIR: target/ci
|
||||
CARGO_REGISTRIES_CRATES_IO_PROTOCOL: sparse
|
||||
CARGO_HTTP_TIMEOUT: "60"
|
||||
CARGO_HTTP_MULTIPLEXING: "false"
|
||||
CARGO_NET_RETRY: "2"
|
||||
steps:
|
||||
- name: Checkout
|
||||
timeout-minutes: 5
|
||||
env:
|
||||
GITEA_ACTIONS_TOKEN: ${{ secrets.GITEA_TOKEN }}
|
||||
GITEA_INTERNAL_URL: http://gitea:3000
|
||||
run: |
|
||||
set -euo pipefail
|
||||
|
||||
repository="${GITHUB_REPOSITORY:?GITHUB_REPOSITORY is required}"
|
||||
sha="${GITHUB_SHA:?GITHUB_SHA is required}"
|
||||
workspace="${GITHUB_WORKSPACE:?GITHUB_WORKSPACE is required}"
|
||||
token="${GITEA_ACTIONS_TOKEN:-}"
|
||||
server_url="${GITEA_INTERNAL_URL%/}"
|
||||
remote_url="${server_url}/${repository}"
|
||||
git_fetch() {
|
||||
if [ -n "${token}" ]; then
|
||||
auth="$(printf 'x-access-token:%s' "${token}" | base64 | tr -d '\n')"
|
||||
extra_header="AUTHORIZATION: basic ${auth}"
|
||||
git -c "http.${server_url}/.extraheader=${extra_header}" fetch "$@"
|
||||
else
|
||||
git fetch "$@"
|
||||
fi
|
||||
}
|
||||
|
||||
mkdir -p "${workspace}"
|
||||
cd "${workspace}"
|
||||
git init .
|
||||
if git remote get-url origin >/dev/null 2>&1; then
|
||||
git remote set-url origin "${remote_url}"
|
||||
else
|
||||
git remote add origin "${remote_url}"
|
||||
fi
|
||||
git_fetch --prune --no-recurse-submodules origin \
|
||||
+refs/heads/*:refs/remotes/origin/* \
|
||||
+refs/tags/*:refs/tags/*
|
||||
if ! git cat-file -e "${sha}^{commit}" 2>/dev/null; then
|
||||
git_fetch --no-recurse-submodules origin "${sha}"
|
||||
fi
|
||||
git clean -ffdx
|
||||
git checkout --force "${sha}"
|
||||
git clean -ffdx
|
||||
git log -1 --format=%H
|
||||
|
||||
- name: Validate repository conventions
|
||||
timeout-minutes: 5
|
||||
run: |
|
||||
set -euo pipefail
|
||||
./scripts/ci/check-conventional-commits.sh v1.0.0
|
||||
|
||||
- name: Install Linux dependencies
|
||||
timeout-minutes: 10
|
||||
run: ./scripts/ci/install-linux-deps.sh
|
||||
|
||||
- name: Bootstrap Rust toolchains
|
||||
timeout-minutes: 25
|
||||
run: ./scripts/ci/bootstrap-rust.sh 1.88.0 none
|
||||
|
||||
- name: Install Cargo tools
|
||||
timeout-minutes: 10
|
||||
run: ./scripts/ci/install-cargo-tools.sh fast
|
||||
|
||||
- name: Validate git-cliff configuration
|
||||
timeout-minutes: 5
|
||||
run: git-cliff --config cliff.toml --unreleased > /dev/null
|
||||
|
||||
- name: Run fast quality gates
|
||||
timeout-minutes: 45
|
||||
run: ./scripts/ci/run-fast-gates.sh
|
||||
Reference in New Issue
Block a user