-
Notifications
You must be signed in to change notification settings - Fork 0
Installation Guide
Inky Quill edited this page Feb 1, 2026
·
4 revisions
This guide covers various installation methods for GitLab CI Linter.
- Go 1.24+ (if building from source)
- Git (if building from source)
- Download the latest binary for your platform from Releases
- Make the binary executable
- Move the binary to your PATH
Releases provide tarballs (.tar.gz) for Linux and macOS, and zip for Windows. Each archive contains the binary, LICENSE, and README.
# Get latest version and detect platform
VERSION=$(curl -s https://api.github.com/repos/InkyQuill/gitlab-ci-lint/releases/latest | jq -r .tag_name | sed 's/^v//')
OS=$(uname | tr '[:upper:]' '[:lower:]')
ARCH=$(uname -m)
case "$ARCH" in x86_64) ARCH="amd64";; aarch64|arm64) ARCH="arm64";; i386|i686) ARCH="386";; esac
# Download tarball and extract
curl -sL "https://github.com/InkyQuill/gitlab-ci-lint/releases/download/v${VERSION}/gitlab-ci-lint_${VERSION}_${OS}_${ARCH}.tar.gz" | tar xz
chmod +x gitlab-ci-lint
mkdir -p ~/.local/bin
mv gitlab-ci-lint ~/.local/bin/
# Add ~/.local/bin to PATH if needed
[[ ":$PATH:" != *":$HOME/.local/bin:"* ]] && echo 'export PATH=$HOME/.local/bin:$PATH' >> ~/.bashrc
export PATH=$HOME/.local/bin:$PATH
gitlab-ci-lint versionVERSION=$(curl -s https://api.github.com/repos/InkyQuill/gitlab-ci-lint/releases/latest | jq -r .tag_name | sed 's/^v//')
curl -sL "https://github.com/InkyQuill/gitlab-ci-lint/releases/download/v${VERSION}/gitlab-ci-lint_${VERSION}_linux_amd64.tar.gz" | tar xz
chmod +x gitlab-ci-lint
sudo mv gitlab-ci-lint /usr/local/bin/
gitlab-ci-lint versionVERSION=$(curl -s https://api.github.com/repos/InkyQuill/gitlab-ci-lint/releases/latest | jq -r .tag_name | sed 's/^v//')
curl -sL "https://github.com/InkyQuill/gitlab-ci-lint/releases/download/v${VERSION}/gitlab-ci-lint_${VERSION}_darwin_arm64.tar.gz" | tar xz
chmod +x gitlab-ci-lint
sudo mv gitlab-ci-lint /usr/local/bin/
gitlab-ci-lint version# Get latest version
$version = (Invoke-RestMethod -Uri "https://api.github.com/repos/InkyQuill/gitlab-ci-lint/releases/latest").tag_name -replace '^v', ''
# Download zip and extract
$zip = "gitlab-ci-lint_${version}_windows_amd64.zip"
Invoke-WebRequest -Uri "https://github.com/InkyQuill/gitlab-ci-lint/releases/download/v$version/$zip" -OutFile $zip -UseBasicParsing
Expand-Archive -Path $zip -DestinationPath . -Force
Move-Item -Path "gitlab-ci-lint.exe" -Destination "$env:USERPROFILE\bin\" -Force
Remove-Item $zip
# Add to PATH if needed
$binPath = "$env:USERPROFILE\bin"
$path = [Environment]::GetEnvironmentVariable("Path", "User")
if ($path -notlike "*$binPath*") {
[Environment]::SetEnvironmentVariable("Path", "$path;$binPath", "User")
$env:Path += ";$binPath"
}
gitlab-ci-lint versionIf you have Go installed:
go install github.com/InkyQuill/gitlab-ci-lint/cmd/gitlab-ci-lint@latestThe binary will be installed to $GOPATH/bin (usually ~/go/bin/).
# Clone the repository
git clone https://github.com/InkyQuill/gitlab-ci-lint.git
cd gitlab-ci-lint
# Build for your current platform
make build
# Or build for all supported platforms
make build-all
# The binaries will be in ./build/
ls -lh build/# Linux AMD64
GOOS=linux GOARCH=amd64 go build -o gitlab-ci-lint-linux-amd64 cmd/gitlab-ci-lint/main.go
# macOS ARM64 (Apple Silicon)
GOOS=darwin GOARCH=arm64 go build -o gitlab-ci-lint-darwin-arm64 cmd/gitlab-ci-lint/main.go
# Windows AMD64
GOOS=windows GOARCH=amd64 go build -o gitlab-ci-lint-windows-amd64.exe cmd/gitlab-ci-lint/main.go# Clone the repository
git clone https://github.com/InkyQuill/gitlab-ci-lint.git
cd gitlab-ci-lint
# Install to GOPATH/bin
make installAfter installation, verify it works:
gitlab-ci-lint versionYou should see version information.
After installation, you can create a configuration file:
# Create config directory
mkdir -p ~/.tool-configs/.gitlab-ci-lint
# Create config file
cat > ~/.tool-configs/.gitlab-ci-lint/config.yaml <<EOF
gitlab:
instance: "https://gitlab.com"
timeout: 30
auth:
token: ""
netrc: false
validation:
skip_api: false
strict: true
output:
format: "text"
verbose: false
color: "auto"
EOFFor API validation, you'll need a GitLab personal access token:
- Go to your GitLab instance
- Navigate to User Settings > Access Tokens
- Create a new token with
apiscope - Set the
GCL_TOKENenvironment variable:
export GCL_TOKEN=glpat-xxxxxxxxxxxxOr add it to your configuration file (see Configuration Guide).
# Generate completion script
gitlab-ci-lint completion bash > /etc/bash_completion.d/gitlab-ci-lint
# Or add to ~/.bash_completion
gitlab-ci-lint completion bash >> ~/.bash_completion
source ~/.bash_completion# Generate completion script
gitlab-ci-lint completion zsh > /usr/local/share/zsh/site-functions/_gitlab-ci-lint
# Or add to ~/.zshrc
gitlab-ci-lint completion zsh >> ~/.zshrcgitlab-ci-lint completion fish > ~/.config/fish/completions/gitlab-ci-lint.fish# If installed to /usr/local/bin
sudo rm /usr/local/bin/gitlab-ci-lint
# If installed via go install
rm $(go env GOPATH)/bin/gitlab-ci-lintrm -rf ~/.tool-configs/.gitlab-ci-lintRemove the completion scripts added during installation.
Ensure the binary is in your PATH:
echo $PATH
which gitlab-ci-lintAdd to PATH if needed:
# Add to ~/.bashrc or ~/.zshrc
export PATH=$PATH:/path/to/gitlab-ci-lintMake the binary executable:
chmod +x gitlab-ci-lintIf building from source fails:
# Ensure you have Go 1.24+
go version
# Update dependencies
cd gitlab-ci-lint
go mod tidy
# Clean and rebuild
make clean
make build- Read the Configuration Guide
- Check out the README.md for usage examples