diff --git a/.github/workflows/deploy-targets-releases.yml b/.github/workflows/deploy-targets-releases.yml new file mode 100644 index 0000000..0150ad2 --- /dev/null +++ b/.github/workflows/deploy-targets-releases.yml @@ -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} + \ No newline at end of file diff --git a/.github/workflows/test-targets-climate.yml b/.github/workflows/test-targets-climate.yml new file mode 100644 index 0000000..445dc0e --- /dev/null +++ b/.github/workflows/test-targets-climate.yml @@ -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} diff --git a/R/pagasa_releases.R b/R/pagasa_releases.R index b49a4e6..a7dcddd 100644 --- a/R/pagasa_releases.R +++ b/R/pagasa_releases.R @@ -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") @@ -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) +} diff --git a/_targets_releases.R b/_targets_releases.R index 139597f..845b703 100644 --- a/_targets_releases.R +++ b/_targets_releases.R @@ -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) + ) +) diff --git a/renv.lock b/renv.lock index 7d414cb..e167f27 100644 --- a/renv.lock +++ b/renv.lock @@ -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",