mirror of
https://github.com/neilotoole/sq.git
synced 2024-12-24 08:36:43 +03:00
511e69f59b
* Bunch o' dependency updates * All deps updated * Linting
226 lines
6.6 KiB
YAML
226 lines
6.6 KiB
YAML
# This workflow tests the various sq install mechanisms.
|
|
name: Test Install
|
|
on:
|
|
workflow_call:
|
|
|
|
# Allows you to run this workflow manually from the Actions tab
|
|
workflow_dispatch:
|
|
|
|
jobs:
|
|
macos-brew:
|
|
runs-on: macos-latest
|
|
if: startsWith(github.ref, 'refs/tags/v')
|
|
steps:
|
|
- name: Set up Homebrew
|
|
uses: Homebrew/actions/setup-homebrew@master
|
|
|
|
- name: Test brew
|
|
shell: bash
|
|
run: |
|
|
set -e pipefail
|
|
brew install neilotoole/sq/sq
|
|
if [ "$(sq version | awk '{print $2}')" != "${{github.ref_name}}" ]; then
|
|
echo "Expected sq ${{github.ref_name}} but got: $(sq version)"
|
|
exit 1
|
|
fi
|
|
|
|
macos-install-sh:
|
|
runs-on: macos-latest
|
|
if: startsWith(github.ref, 'refs/tags/v')
|
|
steps:
|
|
- name: Set up Homebrew
|
|
uses: Homebrew/actions/setup-homebrew@master
|
|
|
|
- name: Test install.sh
|
|
shell: bash
|
|
run: |
|
|
set -e pipefail
|
|
/bin/sh -c "$(curl -fsSL https://sq.io/install.sh)"
|
|
if [ "$(sq version | awk '{print $2}')" != "${{github.ref_name}}" ]; then
|
|
echo "Expected sq ${{github.ref_name}} but got: $(sq version)"
|
|
exit 1
|
|
fi
|
|
|
|
linux-other:
|
|
runs-on: ubuntu-latest
|
|
if: startsWith(github.ref, 'refs/tags/v')
|
|
strategy:
|
|
matrix:
|
|
container:
|
|
- "ubuntu:latest"
|
|
- "fedora:latest"
|
|
- "rockylinux:9"
|
|
# - "opensuse/leap:latest"
|
|
|
|
container:
|
|
image: ${{ matrix.container }}
|
|
|
|
steps:
|
|
- name: Test install.sh
|
|
run: |
|
|
set pipefail
|
|
set +e
|
|
|
|
# Some images don't have curl installed
|
|
if ! command -v curl &> /dev/null ; then
|
|
if command -v apt &> /dev/null; then
|
|
apt update && apt install -y curl
|
|
fi
|
|
fi
|
|
|
|
set -e
|
|
|
|
/bin/sh -c "$(curl -fsSL https://sq.io/install.sh)"
|
|
if [ "$(sq version | awk '{print $2}')" != "${{github.ref_name}}" ]; then
|
|
echo "Expected sq ${{github.ref_name}} but got: $(sq version)"
|
|
exit 1
|
|
fi
|
|
|
|
alpine:
|
|
runs-on: ubuntu-latest
|
|
if: startsWith(github.ref, 'refs/tags/v')
|
|
container: alpine:latest
|
|
steps:
|
|
- name: Test install
|
|
run: |
|
|
set -e pipefail
|
|
apk add curl
|
|
/bin/sh -c "$(curl -fsSL https://sq.io/install.sh)"
|
|
if [ "$(sq version | awk '{print $2}')" != "${{github.ref_name}}" ]; then
|
|
echo "Expected sq ${{github.ref_name}} but got: $(sq version)"
|
|
exit 1
|
|
fi
|
|
|
|
archlinux-pacman:
|
|
runs-on: ubuntu-latest
|
|
if: startsWith(github.ref, 'refs/tags/v')
|
|
container: archlinux:latest
|
|
steps:
|
|
- name: Create non-root user
|
|
run: |
|
|
set -e pipefail
|
|
|
|
pacman -Syu --noconfirm
|
|
pacman -S --needed --noconfirm sudo base-devel
|
|
|
|
uname="moi"
|
|
useradd $uname
|
|
passwd -d $uname
|
|
printf '%s ALL=(ALL) ALL\n' $uname | tee -a /etc/sudoers
|
|
mkdir -p /home/$uname
|
|
chown -R "$uname:$uname" /home/$uname
|
|
|
|
- name: Test install (pacman)
|
|
run: |
|
|
set -e pipefail
|
|
|
|
# Run as non-root user
|
|
# sudo -u moi
|
|
|
|
# Should be installed via pacman
|
|
sudo -u moi /bin/sh -c "$(curl -fsSL https://sq.io/install.sh)"
|
|
if [ "$(sq version | awk '{print $2}')" != "${{github.ref_name}}" ]; then
|
|
echo "Expected sq ${{github.ref_name}} but got: $(sq version)"
|
|
exit 1
|
|
fi
|
|
|
|
archlinux-yay:
|
|
runs-on: ubuntu-latest
|
|
if: startsWith(github.ref, 'refs/tags/v')
|
|
container: archlinux:latest
|
|
steps:
|
|
- name: Create non-root user
|
|
run: |
|
|
set -e pipefail
|
|
|
|
pacman -Syu --noconfirm
|
|
pacman -S --needed --noconfirm sudo base-devel
|
|
|
|
uname="moi"
|
|
useradd $uname
|
|
passwd -d $uname
|
|
printf '%s ALL=(ALL) ALL\n' $uname | tee -a /etc/sudoers
|
|
mkdir -p /home/$uname
|
|
chown -R "$uname:$uname" /home/$uname
|
|
|
|
- name: Install yay
|
|
run: |
|
|
set -e pipefail
|
|
cd /tmp
|
|
curl -sO https://aur.archlinux.org/cgit/aur.git/snapshot/yay-bin.tar.gz
|
|
tar -xf yay-bin.tar.gz
|
|
chmod -R 777 yay-bin
|
|
cd yay-bin
|
|
sudo -u moi makepkg -sri --noconfirm
|
|
|
|
- name: Test install (yay)
|
|
run: |
|
|
set -e pipefail
|
|
|
|
# Should be installed via yay
|
|
sudo -u moi /bin/sh -c "$(curl -fsSL https://sq.io/install.sh)"
|
|
if [ "$(sq version | awk '{print $2}')" != "${{github.ref_name}}" ]; then
|
|
echo "Expected sq ${{github.ref_name}} but got: $(sq version)"
|
|
exit 1
|
|
fi
|
|
|
|
ubuntu-brew:
|
|
runs-on: ubuntu-latest
|
|
if: startsWith(github.ref, 'refs/tags/v')
|
|
steps:
|
|
- name: Set up Homebrew
|
|
id: set-up-homebrew
|
|
uses: Homebrew/actions/setup-homebrew@master
|
|
|
|
- name: Test install via brew
|
|
shell: bash
|
|
run: |
|
|
set -e pipefail
|
|
brew install neilotoole/sq/sq
|
|
if [ "$(sq version | awk '{print $2}')" != "${{github.ref_name}}" ]; then
|
|
echo "Expected sq ${{github.ref_name}} but got: $(sq version)"
|
|
exit 1
|
|
fi
|
|
|
|
void-linux:
|
|
runs-on: ubuntu-latest
|
|
if: startsWith(github.ref, 'refs/tags/v')
|
|
container: ghcr.io/void-linux/void-glibc:latest
|
|
steps:
|
|
- name: Test install
|
|
run: |-
|
|
set -e
|
|
(xbps-install -Syu || true) && xbps-install -yu xbps curl
|
|
/bin/sh -c "$(curl -fsSL https://sq.io/install.sh)"
|
|
if [ "$(sq version | awk '{print $1}')" != "sq" ]; then
|
|
# NOTE: The Void package release is a manual process.
|
|
# Thus, the released version will not match this particular
|
|
# workflow release. We'll just do a simple test here.
|
|
echo "FAIL: sq install not working for some reason"
|
|
exit 1
|
|
fi
|
|
|
|
windows-scoop:
|
|
runs-on: windows-latest
|
|
if: startsWith(github.ref, 'refs/tags/v')
|
|
steps:
|
|
- name: Test install (scoop)
|
|
run: |
|
|
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser
|
|
iex "& {$(irm get.scoop.sh)} -RunAsAdmin"
|
|
|
|
scoop bucket add sq https://github.com/neilotoole/sq
|
|
scoop install sq
|
|
|
|
$gotVersion = sq version
|
|
echo "-------- sq version --------"
|
|
echo $gotVersion
|
|
echo "----------------------------"
|
|
|
|
if ($gotVersion -ne "sq ${{github.ref_name}}") {
|
|
echo "Wanted: sq ${{github.ref_name}}"
|
|
echo "Actual: $gotVersion"
|
|
echo "Incorrect version number"
|
|
exit 1
|
|
}
|