diff --git a/.bumpversion.cfg b/.bumpversion.cfg index 6e0e6cc..6e54861 100644 --- a/.bumpversion.cfg +++ b/.bumpversion.cfg @@ -1,5 +1,5 @@ [bumpversion] -current_version = 7.2.0 +current_version = 7.3.0 commit = False tag = False diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index c6d21a8..3fb5bd5 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -6,7 +6,7 @@ jobs: build: runs-on: ubuntu-20.04 steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v3 - uses: r-lib/actions/setup-r@v2 with: use-public-rspm: true @@ -26,11 +26,11 @@ jobs: runs-on: ubuntu-latest steps: - name: Check out code - uses: actions/checkout@v2 + uses: actions/checkout@v3 - name: Pull Image Data run: make pull_data - name: Login to GitHub Container Registry - uses: docker/login-action@v1 + uses: docker/login-action@v2 with: registry: ghcr.io username: cmu-delphi-deploy-machine @@ -48,15 +48,15 @@ jobs: if [ "$imageTag" = "main" ] ; then imageTag="latest" fi - echo "::set-output name=tag::$imageTag" - echo "::set-output name=repo::ghcr.io/${{ github.repository }}" + echo "tag=$imageTag" >> "$GITHUB_OUTPUT" + echo "repo=ghcr.io/${{ github.repository }}" >> "$GITHUB_OUTPUT" - name: Push Dev Tag run: | docker tag repo ${{ steps.tagname.outputs.repo }}:${{ steps.tagname.outputs.tag }} docker push ${{ steps.tagname.outputs.repo }}:${{ steps.tagname.outputs.tag }} - name: Set up Python 3.8 if: startsWith(github.ref, 'refs/heads/main') - uses: actions/setup-python@v2 + uses: actions/setup-python@v4 with: python-version: 3.8 - name: Extract version @@ -64,8 +64,8 @@ jobs: id: extract_version run: | python -m pip install bump2version - echo -n "::set-output name=version::" - bump2version --dry-run --list patch | grep ^current_version | sed -r s,"^.*=",, + currentVersion=`bump2version --dry-run --list patch | grep ^current_version | sed -r s,"^.*=",,` + echo "version=$currentVersion" >> "$GITHUB_OUTPUT" - name: Trigger Webhook run: | # trigger a webhook update diff --git a/.github/workflows/create_release.yml b/.github/workflows/create_release.yml index 30242bf..a4fa874 100644 --- a/.github/workflows/create_release.yml +++ b/.github/workflows/create_release.yml @@ -20,17 +20,17 @@ jobs: git fetch origin dev:dev git reset --hard dev - name: Set up Python 3.8 - uses: actions/setup-python@v2 + uses: actions/setup-python@v4 with: python-version: 3.8 - name: Change version number id: version run: | python -m pip install bump2version - echo -n "::set-output name=next_tag::" - bump2version --list ${{ github.event.inputs.versionName }} | grep new_version | sed -r s,"^.*=",, + newVersion=`bump2version --list ${{ github.event.inputs.versionName }} | grep new_version | sed -r s,"^.*=",,` + echo "next_tag=$newVersion" >> "$GITHUB_OUTPUT" - name: Create pull request into main - uses: peter-evans/create-pull-request@v3 + uses: peter-evans/create-pull-request@v4 with: branch: release/${{ steps.version.outputs.next_tag }} commit-message: "chore: release ${{ steps.version.outputs.next_tag }}" diff --git a/.github/workflows/release_main.yml b/.github/workflows/release_main.yml index 0e7fa71..a820a22 100644 --- a/.github/workflows/release_main.yml +++ b/.github/workflows/release_main.yml @@ -22,15 +22,15 @@ jobs: - name: Check out code uses: actions/checkout@v3 - name: Set up Python 3.8 - uses: actions/setup-python@v2 + uses: actions/setup-python@v4 with: python-version: 3.8 - name: Extract version id: extract_version run: | python -m pip install bump2version - echo -n "::set-output name=version::" - bump2version --dry-run --list patch | grep ^current_version | sed -r s,"^.*=",, + currentVersion=`bump2version --dry-run --list patch | grep ^current_version | sed -r s,"^.*=",,` + echo "version=$currentVersion" >> "$GITHUB_OUTPUT" - name: Create Release id: create_release uses: release-drafter/release-drafter@v5 diff --git a/.github/workflows/s3_upload_ec2.yml b/.github/workflows/s3_upload_ec2.yml index b17ad1f..ad3722f 100644 --- a/.github/workflows/s3_upload_ec2.yml +++ b/.github/workflows/s3_upload_ec2.yml @@ -25,26 +25,28 @@ jobs: run: sudo chown -R $USER:$USER $GITHUB_WORKSPACE # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it - - uses: actions/checkout@v2 + - uses: actions/checkout@v3 - name: Test AWS cli installation run: aws --version - name: Configure AWS credentials - uses: aws-actions/configure-aws-credentials@v1 + uses: aws-actions/configure-aws-credentials@v2 with: aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY }} aws-secret-access-key: ${{ secrets.AWS_SECRET_KEY }} aws-region: ${{ env.AWS_REGION_NAME }} - name: Login to GitHub Container Registry - uses: docker/login-action@v1 + uses: docker/login-action@v2 with: registry: ghcr.io username: cmu-delphi-deploy-machine password: ${{ secrets.CMU_DELPHI_DEPLOY_MACHINE_PAT }} - name: Deploy score files to S3 bucket + env: + GITHUB_PAT: ${{ secrets.GITHUB_TOKEN }} run: | make deploy diff --git a/DESCRIPTION b/DESCRIPTION index ac917bb..05456dc 100644 --- a/DESCRIPTION +++ b/DESCRIPTION @@ -1,6 +1,6 @@ Package: forecasteval Title: Forecast Evaluation Dashboard -Version: 7.2.0 +Version: 7.3.0 Authors@R: c(person("Kate", "Harwood", role = "aut"), person("Chris", "Scott", role = "ctb"), person("Jed", "Grabman", role = "ctb"), diff --git a/Makefile b/Makefile index ef9469a..c8ecb69 100644 --- a/Makefile +++ b/Makefile @@ -4,6 +4,8 @@ PWD=$(shell pwd) .DEFAULT_GOAL:=build S3_URL=https://forecast-eval.s3.us-east-2.amazonaws.com S3_BUCKET=s3://forecast-eval +# If not already set in calling environment, set PAT to an empty value. +GITHUB_PAT?= # Change `imageTag` during `make` call via `make imageTag=` # @@ -46,6 +48,7 @@ score_forecast: r_build dist pull_data -v ${PWD}/Report:/var/forecast-eval \ -v ${PWD}/dist:/var/dist \ -w /var/forecast-eval \ + -e GITHUB_PAT \ forecast-eval-build \ Rscript create_reports.R --dir /var/dist diff --git a/Report/create_reports.R b/Report/create_reports.R index ebd3ad4..2999b2f 100644 --- a/Report/create_reports.R +++ b/Report/create_reports.R @@ -30,22 +30,29 @@ prediction_cards_filepath <- case_when( options(warn = 1) -# Requested forecasters that do not get included in final scores: -# Auquan-SEIR: Only predicts cumulative deaths -# CDDEP-ABM: No longer on Forecast Hub. Causes some warnings when trying to download. -# CDDEP-SEIR_MCMC: County-level predictions only -# CUBoulder-COVIDLSTM: County-level predictions only -# FAIR-NRAR: County-level predictions only -# HKUST-DNN: Only predicts cumulative deaths -# ISUandPKU-vSEIdR: Folder but no forecasts on Forecast Hub -# PandemicCentral-COVIDForest: County-level predictions only -# UT_GISAG-SPDM: County-level predictions only -# WalmartLabsML-LogForecasting: Only predicts cumulative deaths -# Yu_Group-CLEP: County-level predictions only forecasters <- unique(c( get_covidhub_forecaster_names(designations = c("primary", "secondary")), "COVIDhub-baseline", "COVIDhub-trained_ensemble", "COVIDhub-4_week_ensemble" -)) +)) %>% + # Drop invalid forecasters + setdiff(c( + # Forecasters that have no data on Forecast Hub + "CDDEP-ABM", # No longer on Forecast Hub. Causes some warnings when trying to download. + "ISUandPKU-vSEIdR", # Folder but no forecasts on Forecast Hub + + # Forecasters that don't qualify for inclusion in the dashboard (wrong geo + # level, wrong target variable) + "Auquan-SEIR", # Only predicts cumulative deaths + "CDDEP-SEIR_MCMC", # County-level predictions only + "CUBoulder-COVIDLSTM", # County-level predictions only + "FAIR-NRAR", # County-level predictions only + "HKUST-DNN", # Only predicts cumulative deaths + "PandemicCentral-COVIDForest", # County-level predictions only + "UT_GISAG-SPDM", # County-level predictions only + "WalmartLabsML-LogForecasting", # Only predicts cumulative deaths + "Yu_Group-CLEP" # County-level predictions only + )) + locations <- covidHubUtils::hub_locations # also includes "us", which is national level data diff --git a/app/global.R b/app/global.R index 1cec713..76c7acc 100644 --- a/app/global.R +++ b/app/global.R @@ -10,7 +10,7 @@ library(tsibble) library(covidcast) library(data.table) -appVersion <- "7.2.0" +appVersion <- "7.3.0" COVERAGE_INTERVALS <- c("10", "20", "30", "40", "50", "60", "70", "80", "90", "95", "98") CASES_DEATHS_TARGET_DAY <- "Saturday"