Improve unit testing infrastructure #150
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 Compose on Ubuntu | |
- name: Install Docker Compose on Ubuntu | |
if: matrix.config.os == 'ubuntu-latest' | |
run: | | |
sudo apt-get update | |
sudo apt-get install -y docker-compose | |
# 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 Daemon on macOS | |
- name: Start Docker Daemon on macOS | |
if: matrix.config.os == 'macOS-latest' | |
run: | | |
open /Applications/Docker.app | |
# Wait for Docker daemon to be ready | |
while ! docker system info > /dev/null 2>&1; do | |
echo "Waiting for Docker daemon to start..." | |
sleep 5 | |
done | |
echo "Docker daemon is running." | |
# 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 |