add mageia #162
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
name: dorothy-workflow | |
'on': | |
- push | |
- pull_request | |
jobs: | |
macos-test-and-lint: | |
runs-on: macos-latest | |
env: # HOME is [/home/runner] however checkout must be inside workspace, which is [/home/runner/work/dorothy/dorothy], so override and set defaults | |
HOME: ${{ github.workspace }} | |
XDG_CONFIG_HOME: ${{ github.workspace }}.config | |
XDG_CACHE_HOME: ${{ github.workspace }}.cache | |
XDG_BIN_HOME: ${{ github.workspace }}.local/bin | |
XDG_DATA_HOME: ${{ github.workspace }}.local/share | |
XDG_STATE_HOME: ${{ github.workspace }}.local/state | |
DOROTHY: ${{ github.workspace }}/.local/share/dorothy | |
CI_COMMIT_MESSAGE: 'ci: adjustments' | |
CI_COMMIT_NAME: 'Continuous Integration' | |
CI_COMMIT_EMAIL: 'bot@bevry.me' | |
steps: | |
- name: 'Cache XDG' | |
id: cache-xdg | |
uses: actions/cache@v3 | |
with: | |
path: ~/.local | |
key: ${{ runner.os }} | |
- name: 'Checkout' | |
uses: actions/checkout@v2 | |
with: | |
path: ${{ env.DOROTHY }} | |
- name: 'Dorothy Development' | |
shell: bash | |
run: | | |
# ensure clone set correct permissions | |
chmod +x "$DOROTHY/commands/"* | |
# source dorothy | |
DOROTHY_LOAD=yes | |
DOROTHY_LOADED=no | |
source "$DOROTHY/init.sh" | |
# let dorothy set itself up for development | |
dorothy dev | |
- name: 'Dorothy Test' | |
# shell: 'script -q -e -c "bash {0}"' <-- [-e] not available on macos | |
shell: bash | |
run: | | |
# source dorothy | |
DOROTHY_LOAD=yes | |
DOROTHY_LOADED=no | |
source "$DOROTHY/init.sh" | |
# run dorothy tests | |
dorothy test | |
- name: 'Trunk Format' | |
if: github.event_name == 'push' | |
shell: bash | |
run: | | |
# source dorothy | |
DOROTHY_LOAD=yes | |
DOROTHY_LOADED=no | |
source "$DOROTHY/init.sh" | |
# run formatting tests | |
dorothy format || : | |
# detect and push formatting changes if any | |
cd "$DOROTHY" | |
if git diff --quiet &>/dev/null; then | |
echo 'Already formatted.' | |
else | |
git config --global user.name "${{ env.CI_COMMIT_NAME }}" | |
git config --global user.email "${{ env.CI_COMMIT_EMAIL }}" | |
git commit -a -m "${{ env.CI_COMMIT_MESSAGE }}" | |
git push | |
fi | |
- name: 'Trunk Check' | |
shell: bash | |
run: | | |
# source dorothy | |
DOROTHY_LOAD=yes | |
DOROTHY_LOADED=no | |
source "$DOROTHY/init.sh" | |
# run linting tests | |
dorothy check | |
distro-test: | |
continue-on-error: true | |
runs-on: ubuntu-latest | |
strategy: | |
matrix: | |
container: | |
- 'ubuntu:latest' # https://hub.docker.com/_/ubuntu | |
- 'fedora:latest' # https://hub.docker.com/_/fedora | |
- 'debian:latest' # https://hub.docker.com/_/debian | |
- 'alpine:latest' # https://hub.docker.com/_/alpine <-- script -qec workaround for TTY does not work on alpine | |
- 'manjarolinux/base' # https://hub.docker.com/r/manjarolinux/base | |
- 'opensuse/leap' # https://hub.docker.com/r/opensuse/leap <-- has outdated bash, so is good to test | |
- 'opensuse/tumbleweed' # https://hub.docker.com/r/opensuse/tumbleweed | |
- 'kalilinux/kali-rolling' # https://hub.docker.com/r/kalilinux/kali-rolling <-- apt based | |
- 'voidlinux/voidlinux' # https://hub.docker.com/r/voidlinux/voidlinux <-- locale failure | |
- 'mageia:latest' # https://hub.docker.com/_/mageia | |
# - 'nixos/nix' # https://hub.docker.com/r/nixos/nix <-- doesn't make bash available to env, also locale failure | |
# - 'gentoo/stage3' # https://hub.docker.com/r/gentoo/stage3 <-- couldn't get to work due to home misconfigure error | |
container: | |
image: ${{ matrix.container }} | |
steps: | |
- name: 'Dorothy Dependencies' | |
# don't use [shell: bash] here yet for linux distros, as may not exist yet | |
run: | | |
if command -v apt-get; then | |
# for ubuntu/debian/kali | |
apt-get update | |
apt-get install -y bash curl util-linux moreutils | |
elif command -v apk; then | |
# for alpine | |
apk add bash curl util-linux moreutils | |
elif command -v zypper; then | |
# for opensuse | |
zypper --non-interactive install bash curl util-linux moreutils | |
elif command -v pamac; then | |
# for manjaro | |
pamac install --no-confirm bash curl util-linux moreutils | |
elif command -v pacman; then | |
# for arch besides manjaro | |
pacman --sync --refresh --needed --noconfirm bash curl util-linux moreutils | |
elif command -v yum; then | |
# for fedora | |
yum install -y bash curl util-linux moreutils | |
elif command -v xbps-install; then | |
# for void linux | |
xbps-install --sync --update --yes xbps | |
xbps-install --sync --yes bash curl util-linux moreutils | |
elif command -v nix-env; then | |
# for nix | |
nix-env --install --attr nixpkgs.bash nixpkgs.curl nixpkgs.util-linux moreutils | |
elif command -v emerge; then | |
# for gentoo | |
emerge app-shells/bash net-misc/curl sys-apps/util-linux moreutils | |
elif command -v urpmi; then | |
# for mageia | |
urpmi bash curl util-linux moreutils | |
fi | |
- name: 'Dorothy Remote Tests' | |
# shell: 'script -q -e -c "bash {0}"' | |
shell: bash | |
run: | | |
# clone dorothy and run tests | |
bash -ic "$(curl -fsSL 'https://dorothy.bevry.me/run?branch=${{ github.ref_name }}&commit=${{ github.sha }}')" -- dorothy test |