Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
31 changes: 31 additions & 0 deletions .github/release-drafter.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
name-template: "v$RESOLVED_VERSION"
tag-template: "v$RESOLVED_VERSION"
categories:
- title: "🚀 API Changes"
labels:
- "api change"
- title: "🚀 Python Client Changes"
labels:
- "python client"
- title: "🚀 R Client Changes"
labels:
- "r client"
- title: "🚀 JavaScript Client Changes"
labels:
- "js client"
- "javascript"
- title: "📕 Documentation"
labels:
- "documentation"
- title: "🧰 Development"
labels:
- "chore"
- "documentation"
- "dependencies"
- "acquisition"
change-template: "- #$NUMBER $TITLE"
change-title-escapes: '\<*_&`#@'
template: |
$CHANGES

Thanks to $CONTRIBUTORS
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
name: Create Delphi Epidata Release
name: Create Release

on:
workflow_dispatch:
Expand Down
153 changes: 153 additions & 0 deletions .github/workflows/release-helper.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,153 @@
name: Release Helper

on:
push:
branches:
- main

jobs:
correct_repository:
runs-on: ubuntu-latest
steps:
- name: fail on fork
if: github.repository_owner != 'cmu-delphi'
run: exit 1

create_release:
needs: correct_repository
runs-on: ubuntu-latest
steps:
- name: Check out code
uses: actions/checkout@v2
with:
ssh-key: ${{ secrets.CMU_DELPHI_DEPLOY_MACHINE_SSH }}
- name: Set up Python 3.8
uses: actions/setup-python@v2
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,"^.*=",,
- name: Create Release
id: create_release
uses: release-drafter/release-drafter@v5
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
version: ${{ steps.extract_version.outputs.version }}
publish: true
outputs:
version: ${{ steps.extract_version.outputs.version }}
upload_url: ${{ steps.create_release.outputs.upload_url }}
tag_name: ${{ steps.create_release.outputs.tag_name }}

release_python_client:
needs: create_release
runs-on: ubuntu-latest
steps:
- name: Check out code
uses: actions/checkout@v2
- name: Set up Python 3.8
uses: actions/setup-python@v2
with:
python-version: 3.8
- name: Install build dependencies
run: |
python -m pip install --upgrade pip
pip install wheel twine
- name: Prepare package
run: |
cp src/client/*.py src/client/packaging/pypi/delphi_epidata/
- name: Create release
working-directory: src/client/packaging/pypi
run: |
python setup.py sdist bdist_wheel
- uses: actions/upload-artifact@v2
with:
name: delphi_epidata_py
path: src/client/packaging/pypi/dist/*.tar.gz
- name: Upload Release Asset
uses: AButler/upload-release-assets@v2.0
with:
files: "src/client/packaging/pypi/dist/*.tar.gz"
repo-token: ${{ secrets.GITHUB_TOKEN }}
release-tag: ${{ needs.create_release.outputs.tag_name }}
- name: Publish a Python distribution to PyPI
uses: pypa/gh-action-pypi-publish@release/v1
with:
user: __token__
password: ${{ secrets.DELPHI_PYPI_PROD_TOKEN }}
packages_dir: src/client/packaging/pypi/dist/
skip_existing: true
# repository_url: https://test.pypi.org/legacy/

release_js_client:
needs: create_release
runs-on: ubuntu-latest
defaults:
run:
working-directory: src/client/packaging/npm
steps:
- name: Check out code
uses: actions/checkout@v2
- uses: actions/setup-node@v2
with:
node-version: '14.x'
- name: Cache Node.js modules
uses: actions/cache@v2
with:
path: ~/.npm # npm cache files are stored in `~/.npm` on Linux/macOS
key: ${{ runner.OS }}-node2-${{ hashFiles('**/package-lock.json') }}
restore-keys: |
${{ runner.OS }}-node2-
- run: npm ci
- run: npm test
- run: npm pack
- name: Rename to a different name
run: for f in *.tgz; do mv "$f" "$(echo "$f" | sed s/delphi_epidata-/delphi_epidata_js-/)"; done
- uses: actions/upload-artifact@v2
with:
name: delphi_epidata_js
path: src/client/packaging/npm/*.tgz
- name: Upload Release Asset
uses: AButler/upload-release-assets@v2.0
with:
files: "src/client/packaging/npm/*.tgz"
repo-token: ${{ secrets.GITHUB_TOKEN }}
release-tag: ${{ needs.create_release.outputs.tag_name }}
- name: Publish to NPM
uses: JS-DevTools/npm-publish@v1
with:
token: ${{ secrets.DELPHI_NPM_TOKEN }}
package: src/client/packaging/npm/package.json
access: public
check-version: true

sync_dev:
needs: correct_repository
runs-on: ubuntu-latest
steps:
- name: Check out code
uses: actions/checkout@v2
with:
ref: dev
ssh-key: ${{ secrets.CMU_DELPHI_DEPLOY_MACHINE_SSH }}
- name: Reset dev branch
run: |
git fetch origin main:main
git reset --hard main
- name: Create pull request into dev
uses: peter-evans/create-pull-request@v3
with:
branch: bot/sync-main-dev
commit-message: "chore: sync main-dev"
base: dev
title: "chore: sync main->dev"
labels: chore
reviewers: krivard
assignees: krivard
body: |
Syncing Main->Dev.
3 changes: 2 additions & 1 deletion src/client/packaging/npm/.gitignore
Original file line number Diff line number Diff line change
@@ -1,2 +1,3 @@
/delphi_epidata.*
/node_modules
/node_modules
/*.tgz
21 changes: 21 additions & 0 deletions src/client/packaging/npm/LICENSE
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
The MIT License (MIT)

Copyright (c) 2018 The Delphi Group at Carnegie Mellon University

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
6 changes: 6 additions & 0 deletions src/client/packaging/npm/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
# Delphi Epidata API Client

This package provides a programmatic interface to
[Delphi](https://delphi.cmu.edu/)'s epidemiological data ("epidata")
API. Source code and usage information can be found at
[https://github.com/cmu-delphi/delphi-epidata](https://github.com/cmu-delphi/delphi-epidata).
13 changes: 13 additions & 0 deletions src/client/packaging/npm/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -3,9 +3,22 @@
"description": "Delphi Epidata API Client",
"authors": "Delphi Group",
"version": "0.1.1",
"license": "MIT",
"homepage": "https://github.com/cmu-delphi/delphi-epidata",
"bugs": {
"url": "https://github.com/cmu-delphi/delphi-epidata/issues"
},
"repository": {
"type": "git",
"url": "https://github.com/cmu-delphi/delphi-epidata.git"
},
"main": "delphi_epidata.js",
"types": "delphi_epidata.d.ts",
"browser": "delphi_epidata.js",
"files": [
"delphi_epidata.js",
"delphi_epidata.d.ts"
],
"scripts": {
"prepack": "npx shx cp -f ../../delphi_epidata.js ../../delphi_epidata.d.ts ./",
"test": "npm run prepack && jest"
Expand Down
6 changes: 6 additions & 0 deletions src/client/packaging/pypi/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
delphi_epidata/*
!delphi_epidata/__init__.py
.eggs
/build
/dist
/*.egg-info