Improve unit testing infrastructure #152
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 | |
# Start Docker Compose services | |
- name: Start services with Docker Compose | |
if: matrix.config.os == 'ubuntu-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' | |
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 | |
# Stop and remove Docker containers | |
- name: Stop and remove Docker containers | |
if: matrix.config.os == 'ubuntu-latest' | |
run: | | |
docker stop $(docker ps -q) || true | |
docker rm $(docker ps -aq) || true |