diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 7b5f788..217f40e 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -17,13 +17,20 @@ jobs: fail-fast: false matrix: os: - - ubuntu-20.04 - - ubuntu-24.04 - - macos-13 - - macos-15 + # - ubuntu-20.04 + # - ubuntu-24.04 + # - macos-13 + # - macos-15 + - windows-2022 + defaults: + run: + shell: bash steps: - uses: actions/checkout@v4 + - uses: Vampire/setup-wsl@v4 + if: ${{ runner.os == 'Windows' }} + - name: Install dependencies on Linux if: ${{ runner.os == 'Linux' }} run: | @@ -38,35 +45,35 @@ jobs: run: | command -v expect || brew install expect + - name: Install dependencies on Windows (WSL) + if: ${{ runner.os == 'Windows' }} + shell: wsl-bash {0} + run: | + apt-get update + apt-get install --no-install-recommends -y \ + curl expect git gnupg j2cli lsb-release man python3-pip + - name: Prepare tools directory run: | - mkdir "$RUNNER_TEMP/tools" - echo "$RUNNER_TEMP/tools" >> "$GITHUB_PATH" + mkdir "${{ runner.temp }}/tools" + echo "${{ runner.temp }}/tools" >> "${{ github.path }}" - name: Install shellcheck run: | - if [ "$RUNNER_OS" = "macOS" ]; then - OS=darwin - else - OS=linux - fi - - if [ "$RUNNER_ARCH" = "ARM64" ]; then - ARCH=aarch64 - else - ARCH=x86_64 - fi + cd "${{ runner.temp }}" - cd "$RUNNER_TEMP" + OS=${{ runner.os == 'macOS' && 'darwin' || 'linux' }} + ARCH=${{ runner.arch == 'ARM64' && 'aarch64' || 'x86_64' }} BASE_URL="https://github.com/koalaman/shellcheck/releases/download" SC="v$SC_VER/shellcheck-v$SC_VER.$OS.$ARCH.tar.xz" + curl -L "$BASE_URL/$SC" | tar Jx shellcheck-v$SC_VER/shellcheck mv shellcheck-v$SC_VER/shellcheck tools - name: Install esh run: | - cd "$RUNNER_TEMP/tools" + cd "${{ runner.temp }}/tools" BASE_URL="https://github.com/jirutka/esh/raw/refs/tags" curl -L -o esh "$BASE_URL/v$ESH_VER/esh" @@ -76,8 +83,8 @@ jobs: run: | for version in 1.12.0 2.5.0; do git fetch origin $version:refs/tags/$version - git cat-file blob $version:yadm > "$RUNNER_TEMP/tools/yadm-$version" - chmod +x "$RUNNER_TEMP/tools/yadm-$version" + git cat-file blob $version:yadm > "${{ runner.temp }}/tools/yadm-$version" + chmod +x "${{ runner.temp }}/tools/yadm-$version" done - name: Set up Python 3.11 @@ -86,13 +93,23 @@ jobs: with: python-version: 3.11 - - name: Install Python dependencies + - name: Install dependencies and run tests + if: ${{ runner.os != 'Windows' }} run: | - python -m pip install --upgrade pip - python -m pip install -r test/requirements.txt + git config --global user.email test@yadm.io + git config --global user.name "Yadm Test" - - name: Run tests + python3 -m pip install --upgrade pip + python3 -m pip install -r test/requirements.txt + pytest -v --color=yes --basetemp="${{ runner.temp }}/pytest" + + - name: Install dependencies and run tests + if: ${{ runner.os == 'Windows' }} + shell: wsl-bash {0} run: | git config --global user.email test@yadm.io git config --global user.name "Yadm Test" - pytest -v --color=yes --basetemp="$RUNNER_TEMP/pytest" + + python3 -m pip install --upgrade pip + python3 -m pip install -r test/requirements.txt + pytest -v --color=yes