cleaning up r-build

This commit is contained in:
Charlton, Scott R 2021-09-27 18:01:34 -07:00
parent de3cd91cff
commit 547c6ed33d
5 changed files with 82 additions and 53 deletions

View File

@ -122,21 +122,13 @@ jobs:
shell: Rscript {0} shell: Rscript {0}
- name: versioning - name: versioning
run: ./jenkins-R-dist.sh -v ${{ needs.init.outputs.VER }} -r ${{ needs.init.outputs.REL }} -d ${{ needs.init.outputs.DATE }} run: ./jenkins-dist.sh -v ${{ needs.init.outputs.VER }} -r ${{ needs.init.outputs.REL }} -d ${{ needs.init.outputs.DATE }}
# - name: versioning - name: build
# run: ./jenkins-dist.sh -v ${{ needs.init.outputs.VER }} -r ${{ needs.init.outputs.REL }} -d ${{ needs.init.outputs.DATE }} run: cd R && make build
# - name: R - name: check
# run: | run: cd R && make check
# cd R
# mkdir -p phreeqc/man
# mkdir -p phreeqc/src/phreeqcpp
# mkdir -p phreeqc/R
# mkdir -p phreeqc/data
# echo "# Generated by roxygen2: do not edit by hand" > phreeqc/NAMESPACE
# DATE=$(date -d ${{ needs.init.outputs.DATE }} "+%Y-%m-%d")
# make VERSION=${{ needs.init.outputs.VER }} RELEASE_DATE=$DATE build
- uses: actions/upload-artifact@v2 - uses: actions/upload-artifact@v2
with: with:

View File

@ -1,19 +1,36 @@
# phreeqc TOPDIR
# ├── data DATADIR
# ├── inst INST
# ├── man MAN
# ├── R
# └── src IDEST
# └── phreeqcpp DEST
#
CP=cp -f CP=cp -f
TOPDIR=phreeqc TOPDIR ?= phreeqc
IDEST=phreeqc/src IDEST=$(TOPDIR)/src
DEST=phreeqc/src/phreeqcpp DEST=$(TOPDIR)/src/phreeqcpp
ISRC=../src ISRC=../src
SRC=../src/phreeqcpp SRC=../src/phreeqcpp
INST=phreeqc/inst INST=$(TOPDIR)/inst
DBDIR=../database DBDIR=../database
DATADIR=phreeqc/data DATADIR=$(TOPDIR)/data
EXDIR=../phreeqc3-examples EXDIR=../phreeqc3-examples
MAN=phreeqc/man MAN=$(TOPDIR)/man
R=$(TOPDIR)/R
SVN_URL := http://internalbrr.cr.usgs.gov/svn_GW _TOPDIR := $(shell mkdir -p $(TOPDIR))
RELEASE ?= $(shell svn info $(SVN_URL) | egrep "Revision:" | cut -b 10- | ( read one two ; echo $$one ) ) _IDEST := $(shell mkdir -p $(IDEST))
_DEST := $(shell mkdir -p $(DEST))
_INST := $(shell mkdir -p $(INST))
_DATADIR := $(shell mkdir -p $(DATADIR))
_MAN := $(shell mkdir -p $(MAN))
_R := $(shell mkdir -p $(R))
RELEASE ?= $(shell curl -sS https://raw.githubusercontent.com/usgs-coupled/phreeqc-version/main/rel.py | python3 -)
RELEASE_DATE ?= $(shell date "+%Y-%m-%d") RELEASE_DATE ?= $(shell date "+%Y-%m-%d")
VERSION ?= 1.0 VERSION ?= $(shell curl -sS https://raw.githubusercontent.com/usgs-coupled/phreeqc-version/main/next_ver.sh | /bin/sh)
DBS = \ DBS = \
Amm.ascii \ Amm.ascii \
@ -281,11 +298,12 @@ $(DATADIR)/examples.rda : $(EXS) build-examples.R
R --no-save --no-restore CMD BATCH build-examples.R R --no-save --no-restore CMD BATCH build-examples.R
rm -f .RData rm -f .RData
roxygenize $(MAN)/phreeqc-package.Rd : phreeqc/R/phreeqc.R # roxygenize $(MAN)/phreeqc-package.Rd : $(R)/phreeqc.R
rm -f $(RDFILES) # rm -f $(RDFILES)
rm -f .RData # rm -f .RData
R --no-save --no-restore CMD BATCH roxygenize.R # # R --no-save --no-restore CMD BATCH roxygenize.R
touch $(MAN)/phreeqc-package.Rd # # touch $(MAN)/phreeqc-package.Rd
# Rscript -e 'devtools::document(pkg = "phreeqc")'
##$(PSRC): $(DEST) ##$(PSRC): $(DEST)
@ -809,8 +827,18 @@ $(INST)/ex2 : ../phreeqc3-examples/ex2
######################################## ########################################
roxygenize $(MAN)/phreeqc-package.Rd : $(R)/phreeqc.R
rm -f $(RDFILES)
rm -f .RData
# R --no-save --no-restore CMD BATCH roxygenize.R
# touch $(MAN)/phreeqc-package.Rd
Rscript -e 'devtools::document(pkg = "phreeqc")'
check : all check : all
Rscript -e "devtools::check('phreeqc')" Rscript -e "devtools::check(pkg = 'phreeqc')"
# check_built :
# Rscript -e "devtools::check_built()"
valgrind : install valgrind : install
R -d "valgrind --tool=memcheck --leak-check=full" --vanilla < valgrind.R 2>&1 | tee valgrind.full.out R -d "valgrind --tool=memcheck --leak-check=full" --vanilla < valgrind.R 2>&1 | tee valgrind.full.out
@ -818,12 +846,14 @@ valgrind : install
install : all install : all
R CMD INSTALL --build phreeqc R CMD INSTALL --build phreeqc
$(TOPDIR)/R/phreeqc.R : phreeqc.R.in export_sed
phreeqc/R/phreeqc.R : export_sed $(TOPDIR)/DESCRIPTION : DESCRIPTION.in export_sed
phreeqc/DESCRIPTION : export_sed $(TOPDIR)/inst/CITATION : CITATION.in export_sed
export_sed : .PHONY: export_sed
export_sed : check-vars
sed \ sed \
-e 's/@VERSION@/$(VERSION)/g' \ -e 's/@VERSION@/$(VERSION)/g' \
< DESCRIPTION.in > $(TOPDIR)/DESCRIPTION < DESCRIPTION.in > $(TOPDIR)/DESCRIPTION
@ -831,6 +861,9 @@ export_sed :
-e 's/@VERSION@/$(VERSION)/g' \ -e 's/@VERSION@/$(VERSION)/g' \
-e 's/@RELEASE_DATE@/$(RELEASE_DATE)/g' \ -e 's/@RELEASE_DATE@/$(RELEASE_DATE)/g' \
< phreeqc.R.in > $(TOPDIR)/R/phreeqc.R < phreeqc.R.in > $(TOPDIR)/R/phreeqc.R
echo "# Generated by roxygen2: do not edit by hand" > $(TOPDIR)/NAMESPACE
$(CP) CITATION $(TOPDIR)/inst/CITATION
$(CP) LICENSE.note $(TOPDIR)/LICENSE.note
build : all build : all
R CMD build --resave-data phreeqc R CMD build --resave-data phreeqc
@ -847,10 +880,19 @@ $(IDEST)/R.cpp : R.cpp
< $< > $@ < $< > $@
$(IDEST): $(IDEST):
mkdir $(IDEST) mkdir -p $(IDEST)
$(DEST): $(DEST):
mkdir $(DEST) mkdir -p $(DEST)
clean : clean :
rm -f $(PSRC) $(XSRC) $(DEST)/*.o $(IDEST)/*.o $(DEST)/*.so rm -f $(PSRC) $(XSRC) $(DEST)/*.o $(IDEST)/*.o $(DEST)/*.so
.PHONY: check-vars
check-vars:
ifndef VERSION
$(error VERSION is undefined)
endif
ifndef RELEASE_DATE
$(error RELEASE_DATE is undefined)
endif

View File

@ -4,28 +4,28 @@
# set DATE # set DATE
# #
if [ -z "$DATE" ]; then if [ -z "$DATE" ]; then
DATE=$(date "+%x") DATE=$(date "+%x")
fi fi
DATE=$(date -d $DATE "+%Y-%m-%d") DATE=$(date -d $DATE --rfc-3339=date)
# #
# set VER # set VER
# #
if [ -z "$VER" ]; then if [ -z "$VER" ]; then
###wget https://cran.r-project.org/package=phreeqc -O index.xhtml 2> /dev/null ###wget https://cran.r-project.org/package=phreeqc -O index.xhtml 2> /dev/null
###VER=`xmlstarlet sel -t -m "/_:html/_:body/_:table[1]/_:tr[1]/_:td[2]" -v . -n index.xhtml 2> /dev/null` ###VER=`xmlstarlet sel -t -m "/_:html/_:body/_:table[1]/_:tr[1]/_:td[2]" -v . -n index.xhtml 2> /dev/null`
VER=$(curl https://raw.githubusercontent.com/usgs-coupled/phreeqc-version/main/phreeqc-version.txt) VER=$(curl https://raw.githubusercontent.com/usgs-coupled/phreeqc-version/main/phreeqc-version.txt)
ver_major=$(echo "$VER" | cut -d '.' -f 1) ver_major=$(echo "$VER" | cut -d '.' -f 1)
ver_minor=$(echo "$VER" | cut -d '.' -f 2) ver_minor=$(echo "$VER" | cut -d '.' -f 2)
ver_patch=$(echo "$VER" | cut -d '.' -f 3) ver_patch=$(echo "$VER" | cut -d '.' -f 3)
ver_patch=$((ver_patch+1)) ver_patch=$((ver_patch+1))
else else
ver_major=$(echo "$VER" | cut -d '.' -f 1) ver_major=$(echo "$VER" | cut -d '.' -f 1)
ver_minor=$(echo "$VER" | cut -d '.' -f 2) ver_minor=$(echo "$VER" | cut -d '.' -f 2)
ver_patch=$(echo "$VER" | cut -d '.' -f 3) ver_patch=$(echo "$VER" | cut -d '.' -f 3)
fi fi
if [ -z "$ver_major" ] || [ -z "$ver_minor" ] || [ -z "$ver_patch" ]; then if [ -z "$ver_major" ] || [ -z "$ver_minor" ] || [ -z "$ver_patch" ]; then
exit 1 exit 1
fi fi
VER="${ver_major}.${ver_minor}.${ver_patch}" VER="${ver_major}.${ver_minor}.${ver_patch}"
export VER export VER
@ -36,16 +36,11 @@ export VER
curl https://raw.githubusercontent.com/usgs-coupled/phreeqc-version/main/ver.py -o ver.py curl https://raw.githubusercontent.com/usgs-coupled/phreeqc-version/main/ver.py -o ver.py
HEAD=$(python3 ver.py) HEAD=$(python3 ver.py)
if [ -z "$REL" ]; then if [ -z "$REL" ]; then
REL="$HEAD" REL="$HEAD"
fi fi
# sed files # sed files
/bin/sh jenkins-dist.sh -v ${VER} -r ${REL} -d ${DATE} -pr ${TAG} /bin/sh jenkins-dist.sh -v ${VER} -r ${REL} -d ${DATE} -pr ${TAG}
cd R cd R
mkdir -p phreeqc/man make VERSION=${VER} RELEASE_DATE=${DATE} build
mkdir -p phreeqc/src/phreeqcpp
mkdir -p phreeqc/R
mkdir -p phreeqc/data
echo "# Generated by roxygen2: do not edit by hand" > phreeqc/NAMESPACE
# make VERSION=${VER} RELEASE_DATE=${DATE} build
make VERSION=${VER} RELEASE_DATE=${DATE} check make VERSION=${VER} RELEASE_DATE=${DATE} check