Skip to content

Commit

Permalink
create targets releases workflow and gha automation
Browse files Browse the repository at this point in the history
  • Loading branch information
ernestguevarra committed Aug 4, 2024
1 parent 769ef4a commit 5d7e276
Show file tree
Hide file tree
Showing 5 changed files with 142 additions and 5 deletions.
43 changes: 43 additions & 0 deletions .github/workflows/deploy-targets-releases.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
name: deploy targets releases

on:
schedule:
- cron: "0 5 * * *"
workflow_dispatch:
branches:
- '*'

jobs:
deploy-targets-releases:
runs-on: ubuntu-latest
container: rocker/tidyverse:4.4.1
steps:
- uses: actions/checkout@v4

- name: Install system dependencies
run: |
apt-get update && apt-get install -y --no-install-recommends \
libxt6 libglpk-dev libpoppler-cpp-dev libmagick++-dev \
libtesseract-dev libleptonica-dev tesseract-ocr-eng
- name: Trust git repo
run: |
git config --global --add safe.directory /__w/paglaom/paglaom
- name: Install packages from renv.lock (with cache)
if: ${{ !env.ACT }}
uses: r-lib/actions/setup-renv@v2
with:
cache-version: 2

- name: Install packages from renv.lock (local, no cache)
if: ${{ env.ACT }}
run: |
renv::restore()
shell: Rscript {0}

- name: Run workflow
run: |
targets::tar_make(script = "_targets_releases.R")
shell: Rscript {0}

38 changes: 38 additions & 0 deletions .github/workflows/test-targets-climate.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
name: test targets climate

on:
pull_request:
branches: [main, master]
workflow_dispatch:
branches:
- '*'

jobs:
test-targets-climate:
runs-on: ubuntu-latest
container: rocker/tidyverse:4.4.1
steps:
- uses: actions/checkout@v4

- name: Install system dependencies
run: |
apt-get update && apt-get install -y --no-install-recommends \
libxt6 libglpk-dev libpoppler-cpp-dev libmagick++-dev \
libtesseract-dev libleptonica-dev tesseract-ocr-eng
- name: Install packages from renv.lock (with cache)
if: ${{ !env.ACT }}
uses: r-lib/actions/setup-renv@v2
with:
cache-version: 2

- name: Install packages from renv.lock (local, no cache)
if: ${{ env.ACT }}
run: |
renv::restore()
shell: Rscript {0}

- name: Run workflow
run: |
targets::tar_make(script = "_targets_climate.R")
shell: Rscript {0}
37 changes: 35 additions & 2 deletions R/pagasa_releases.R
Original file line number Diff line number Diff line change
Expand Up @@ -65,8 +65,8 @@ paglaom_create_weekly_release <- function(repo = "panukatan/paglaom",
#' Create data upload to GitHub
#'

paglaom_create_weekly_upload <- function(repo = "panukatan/paglaom",
tag) {
paglaom_upload_weekly_release <- function(repo = "panukatan/paglaom",
tag) {
zipdir <- tempdir()
zip_climate <- file.path(zipdir, "climate.zip")
zip_cyclones <- file.path(zipdir, "cyclones.zip")
Expand Down Expand Up @@ -111,3 +111,36 @@ paglaom_create_weekly_upload <- function(repo = "panukatan/paglaom",
)
}


#'
#' Get filenames of data from current release
#'
#'

get_data_release_filenames <- function(dataset = NULL) {
if (is.null(dataset)) {
urls <- piggyback::pb_download_url()
} else {
urls <- piggyback::pb_download_url(file = paste0(dataset, ".zip"))
}

destfile <- file.path(tempdir(), basename(urls))

Map(
f = download.file,
url = urls,
destfile = destfile,
mode = "wb"
)

lapply(
X = destfile,
FUN = unzip,
list = TRUE
) |>
dplyr::bind_rows() |>
dplyr::pull(Name) |>
c()

unlink(destfile)
}
23 changes: 23 additions & 0 deletions _targets_releases.R
Original file line number Diff line number Diff line change
@@ -1,2 +1,25 @@
################################################################################
#
# Targets workflow for weekly data releases
#
################################################################################

## Setup workflow using project-wide settings ----------------------------------
source("_targets_setup.R")


## Release targets -------------------------------------------------------------

release_targets <- tar_plan(
### Create weekly GitHub release ----
tar_target(
name = paglaom_weekly_release_tag,
command = paglaom_create_weekly_release(major = 1),
cue = tar_cue("always")
),
### Upload weekly data release ----
tar_target(
name = paglaom_weekly_release,
command = paglaom_upload_weekly_release(tag = paglaom_weekly_release_tag)
)
)
6 changes: 3 additions & 3 deletions renv.lock
Original file line number Diff line number Diff line change
Expand Up @@ -94,13 +94,13 @@
},
"bagyo": {
"Package": "bagyo",
"Version": "0.1.1",
"Version": "0.1.1.9000",
"Source": "Repository",
"Repository": "CRAN",
"Repository": "https://panukatan.r-universe.dev",
"Requirements": [
"R"
],
"Hash": "8a99897411c511af736da1479b942350"
"Hash": "cac5f346c0bfb73ed06214b92d2a18ae"
},
"base64enc": {
"Package": "base64enc",
Expand Down

0 comments on commit 5d7e276

Please sign in to comment.