docs: Update README.md #156
Workflow file for this run
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
# Our desired pipeline using only a Nix shell environment | |
name: Check and build Kardinal | |
on: | |
push: | |
branches: | |
- main | |
tags: | |
- "v*.*.*" | |
pull_request: | |
branches: | |
- main | |
env: | |
MAIN_BRANCH: ${{ 'refs/heads/main' }} | |
jobs: | |
check_nix: | |
name: Basic Check | |
runs-on: ubuntu-22.04 | |
steps: | |
- name: git checkout | |
uses: actions/checkout@v3 | |
- name: Install Nix | |
uses: DeterminateSystems/nix-installer-action@main | |
- name: Magic cache | |
uses: DeterminateSystems/magic-nix-cache-action@main | |
- name: Check Nixpkgs inputs | |
uses: DeterminateSystems/flake-checker-action@main | |
with: | |
fail-mode: true | |
# Nix-specific logic begins here | |
- name: Nix Check | |
run: | | |
nix flake check | |
- name: Check Go tidiness | |
run: | | |
git reset --hard | |
git clean -f | |
nix develop --command go-tidy-all | |
export changed_files=$(git diff-files --name-only | grep -cv ".toml$") | |
if [[ $changed_files != 0 ]]; then | |
echo "Go modules are not so tidy (run 'go-tidy-all' to fix it):" | |
git diff-files --name-only | |
exit 1 | |
fi | |
- name: Check Go formatting | |
run: | | |
git reset --hard | |
git clean -f | |
nix develop --command test -z $(gofmt -l .) | |
build_publish_images: | |
name: Test, build and publish images | |
needs: check_nix | |
runs-on: ubuntu-22.04 | |
steps: | |
- name: git checkout | |
uses: actions/checkout@v3 | |
- name: Install Nix | |
uses: DeterminateSystems/nix-installer-action@main | |
- name: Magic cache | |
uses: DeterminateSystems/magic-nix-cache-action@main | |
- name: Build Kardinal Manager images | |
run: | | |
nix build ./#containers.x86_64-linux.kardinal-manager.arm64 --no-link --print-out-paths | |
nix build ./#containers.x86_64-linux.kardinal-manager.amd64 --no-link --print-out-paths | |
- name: Build Kardinal CLI images | |
run: | | |
nix build ./#containers.x86_64-linux.kardinal-cli.arm64 --no-link --print-out-paths | |
nix build ./#containers.x86_64-linux.kardinal-cli.amd64 --no-link --print-out-paths | |
- name: Build Redis Sidecar images | |
run: | | |
nix build ./#containers.x86_64-linux.redis-proxy-overlay.arm64 --no-link --print-out-paths | |
nix build ./#containers.x86_64-linux.redis-proxy-overlay.amd64 --no-link --print-out-paths | |
- name: Login to Docker Hub | |
uses: docker/login-action@v3 | |
with: | |
username: ${{ secrets.DOCKERHUB_USERNAME }} | |
password: ${{ secrets.DOCKERHUB_TOKEN }} | |
- name: Publish images | |
if: github.ref == env.MAIN_BRANCH | |
run: | | |
nix run ./#publish-kardinal-manager-container | |
nix run ./#publish-kardinal-cli-container | |
nix run ./#publish-redis-proxy-overlay-container | |
build_clis: | |
name: Test and build cross-compiled clis | |
needs: check_nix | |
runs-on: ubuntu-22.04 | |
strategy: | |
matrix: | |
os: [linux, darwin, windows] | |
arch: [amd64, arm64] | |
steps: | |
- name: git checkout | |
uses: actions/checkout@v3 | |
- name: Install Nix | |
uses: DeterminateSystems/nix-installer-action@main | |
- name: Magic cache | |
uses: DeterminateSystems/magic-nix-cache-action@main | |
- name: Build cli | |
run: | | |
result=$(nix build ./#cross-compiled-cli.x86_64-linux.${{ matrix.os }}.${{ matrix.arch }} --no-link --print-out-paths) | |
path=$(find $result -name 'kardinal.cli*' -type f | head -n 1) | |
if [[ "${{ matrix.os }}" == "windows" ]]; then | |
binout="/tmp/kardinal-${{ matrix.os }}-${{ matrix.arch }}.exe" | |
else | |
binout="/tmp/kardinal-${{ matrix.os }}-${{ matrix.arch }}" | |
fi | |
ls -lah $path | |
ln -s $path $binout | |
ls -lah $binout | |
[ -s $binout ] |