Initial commit #6
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
--- | |
name: Test and QC 🧪 | |
on: | |
pull_request: | |
types: | |
- opened | |
- synchronize | |
- reopened | |
- ready_for_review | |
branches: | |
- main | |
push: | |
branches: | |
- main | |
workflow_dispatch: | |
concurrency: | |
group: test-${{ github.event.pull_request.number || github.ref }} | |
cancel-in-progress: true | |
env: | |
TEMPLATE_REF: main | |
TEMPLATE_REPO: boehringer-ingelheim/dv.templates | |
jobs: | |
test: | |
name: ${{ vars.CI_IMAGE }} | |
runs-on: ubuntu-latest | |
container: | |
image: ${{ vars.CI_IMAGE }} | |
env: | |
GITHUB_PAT: ${{ secrets.GITHUB_TOKEN }} | |
steps: | |
- name: Checkout project ⬇️ | |
uses: actions/checkout@v4 | |
- name: Checkout templates repo ⬇️ | |
uses: actions/checkout@v4 | |
with: | |
ref: ${{env.TEMPLATE_REF}} | |
repository: ${{env.TEMPLATE_REPO}} | |
sparse-checkout: | | |
scripts/ | |
inst/validation | |
path: templates | |
- name: Overwrite quality control scripts with dv.templates ones 🧹 | |
shell: bash | |
run: | | |
TEMPLATE_DIR="templates/inst/validation" | |
REPO_DIR="inst/validation" | |
if test ! -d "${REPO_DIR}"; then | |
echo "### Quality Control documentation is not present" | |
echo "### Include quality control documentation or skip it by creating following file 'inst/validation/skip_qc'" | |
exit 1 | |
fi | |
if test -f "${REPO_DIR}/skip_qc"; then | |
echo "skip_qc file found skipping qc documentation" | |
exit 0 | |
fi | |
# Conserve specs.R file | |
cp "${REPO_DIR}/specs.R" "${TEMPLATE_DIR}/specs.R" | |
set +e # Disable immediate exit in conflicting parts on error for diff command | |
DIFF_OUTPUT=$(diff -qr "${TEMPLATE_DIR}" "${REPO_DIR}") | |
set -e # Enable immediate exit on error after diff command | |
echo "# Quality control files" | tee -a "${GITHUB_STEP_SUMMARY}" | |
if [ -n "${DIFF_OUTPUT}" ]; then | |
echo "Warning: The contents of the directories are different!" | tee -a "${GITHUB_STEP_SUMMARY}" | |
echo "Modified files:" | tee -a "${GITHUB_STEP_SUMMARY}" | |
echo "$DIFF_OUTPUT" | tee -a "${GITHUB_STEP_SUMMARY}" | |
else | |
echo "The directories are identical." | tee -a "${GITHUB_STEP_SUMMARY}" | |
fi | |
rm -rf "${REPO_DIR}" | |
mv "${TEMPLATE_DIR}" "${REPO_DIR}" | |
- name: Install package dependencies 📄 | |
uses: boehringer-ingelheim/dv.templates/.github/actions/dependencies@main | |
- name: Test and QC2 🧪 | |
run: Rscript templates/scripts/test_qc_pkg.R | |
- name: Archive snap results ⬆️ | |
if: always() | |
uses: actions/upload-artifact@v4 | |
with: | |
name: snap_results | |
path: tests/testthat/_snaps | |