Improve unit testing infrastructure #149
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
# Workflow derived from https://github.com/r-lib/actions/tree/v2/examples | |
# Need help debugging build failures? Start at https://github.com/r-lib/actions#where-to-find-help | |
on: | |
push: | |
branches: [main, master] | |
pull_request: | |
branches: [main, master] | |
workflow_dispatch: {} | |
name: R-CMD-check | |
jobs: | |
R-CMD-check: | |
runs-on: ${{ matrix.config.os }} | |
name: ${{ matrix.config.os }} (${{ matrix.config.r }}) | |
strategy: | |
fail-fast: false | |
matrix: | |
config: | |
- {os: macOS-latest, r: 'release'} | |
- {os: windows-latest, r: 'release'} | |
- {os: ubuntu-latest, r: 'devel', http-user-agent: 'release'} | |
- {os: ubuntu-latest, r: 'release'} | |
- {os: ubuntu-latest, r: 'oldrel-1'} | |
env: | |
GITHUB_PAT: ${{ secrets.GITHUB_TOKEN }} | |
R_KEEP_PKG_SOURCE: yes | |
PRESTO_VERSION: "${{ matrix.config.presto_version || 'latest' }}" | |
TRINO_VERSION: "${{ matrix.config.trino_version || 'latest' }}" | |
steps: | |
- uses: actions/checkout@v2 | |
- uses: r-lib/actions/setup-pandoc@v2 | |
- uses: r-lib/actions/setup-r@v2 | |
with: | |
r-version: ${{ matrix.config.r }} | |
http-user-agent: ${{ matrix.config.http-user-agent }} | |
use-public-rspm: true | |
- uses: r-lib/actions/setup-r-dependencies@v2 | |
with: | |
extra-packages: any::rcmdcheck | |
needs: check | |
# Install Docker and Docker Compose on macOS | |
- name: Install Docker on macOS | |
if: matrix.config.os == 'macOS-latest' | |
run: | | |
brew install --cask docker | |
brew install docker-compose | |
# Start Docker Compose services | |
- name: Start services with Docker Compose | |
if: matrix.config.os == 'ubuntu-latest' || matrix.config.os == 'macOS-latest' | |
run: | | |
docker-compose up -d | |
# Ensure Presto and Trino servers are running | |
- name: Wait for Presto and Trino to be ready | |
if: matrix.config.os == 'ubuntu-latest' || matrix.config.os == 'macOS-latest' | |
run: | | |
for i in {1..30}; do | |
if curl -s http://localhost:8080/v1/info && curl -s http://localhost:8090/v1/info; then | |
echo "Presto and Trino are up and running." | |
break | |
fi | |
echo "Waiting for Presto and Trino to be ready..." | |
sleep 5 | |
done | |
if ! curl -s http://localhost:8080/v1/info || ! curl -s http://localhost:8090/v1/info; then | |
echo "Presto or Trino did not start in time. Exiting." | |
exit 1 | |
fi | |
- uses: r-lib/actions/check-r-package@v2 | |
with: | |
upload-snapshots: true |