diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml new file mode 100644 index 0000000..8cdca58 --- /dev/null +++ b/.github/workflows/test.yml @@ -0,0 +1,25 @@ +name: test + +on: [push] + +jobs: + test: + name: Unit tests + runs-on: ubuntu-latest + permissions: + contents: read + + steps: + - name: Checkout repository + uses: actions/checkout@v3 + + - name: Setup Docker buildx + uses: docker/setup-buildx-action@v2 + + - name: Test via build + uses: docker/build-push-action@v4 + with: + context: . + file: ./Dockerfile_unittests + push: false + diff --git a/Dockerfile_unittests b/Dockerfile_unittests new file mode 100644 index 0000000..728dc88 --- /dev/null +++ b/Dockerfile_unittests @@ -0,0 +1,37 @@ +FROM rocker/r-ver:latest + +LABEL org.opencontainers.image.authors="us@couchbits.com" +LABEL org.opencontainers.image.vendor="couchbits GmbH" + +ENV PROJECT_DIR=/moveapps-r-sdk +ENV RENV_PATHS_CACHE=/renv/cache + +RUN apt-get update && apt-get install -y \ + libcurl4-openssl-dev \ + libssl-dev \ + libxml2-dev \ + libudunits2-dev \ + libgdal-dev + +# Create the project directory +RUN mkdir -p $PROJECT_DIR + +# Set the working directory +WORKDIR $PROJECT_DIR + +# Copy necessary files +COPY renv.lock ./ +COPY sdk.R ./ +COPY src/ ./src/ +COPY data/ ./data/ +COPY tests/ ./tests/ +COPY RFunction.R ./ + +# Install renv and restore packages +RUN R -e 'install.packages("renv")' && \ + R -e 'renv::consent(provided = TRUE); renv::restore()' && \ + R -e 'renv::clean()' + +# Run tests +RUN R -e 'install.packages("testthat")' && \ + R -e 'testthat::test_dir("tests")' diff --git a/tests/testthat.R b/tests/testthat.R new file mode 100644 index 0000000..5270427 --- /dev/null +++ b/tests/testthat.R @@ -0,0 +1 @@ +library(testthat) diff --git a/tests/testthat/testthat.R b/tests/testthat/testthat.R deleted file mode 100644 index 90fa8ed..0000000 --- a/tests/testthat/testthat.R +++ /dev/null @@ -1 +0,0 @@ -library(testthat) \ No newline at end of file