Skip to content

Commit

Permalink
add gha to deploy example-get-started (#256)
Browse files Browse the repository at this point in the history
* add gha to deploy example-get-started

* drop existing refs
  • Loading branch information
Dave Berenbaum authored Sep 25, 2023
1 parent 3c5249d commit d9825ed
Show file tree
Hide file tree
Showing 4 changed files with 74 additions and 4 deletions.
62 changes: 62 additions & 0 deletions .github/workflows/example-get-started-deploy.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,62 @@
name: example-get-started deploy
on:
push:
paths:
- example-get-started/**
branches:
- master
workflow_dispatch:
permissions:
contents: write
id-token: write
pull-requests: write
jobs:
test:
runs-on: ubuntu-latest
environment: aws
steps:
- name: Checkout repo
uses: actions/checkout@v3
- name: Set up Python
uses: actions/setup-python@v4
with:
python-version: '3.11'
cache: 'pip'
- uses: aws-actions/configure-aws-credentials@v2
with:
aws-region: us-east-2
role-to-assume: ${{ vars.AWS_SANDBOX_ROLE }}
role-duration-seconds: 43200
- uses: iterative/setup-dvc@v1
- name: Generate repo
run: |
pip install virtualenv
cd example-get-started
./generate.sh true
- name: Deploy repo
env:
REPO_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
# add remote
cd build/example-get-started
git remote add origin git@github.com:iterative/example-get-started.git
# close open PRs
gh pr close try-large-dataset
gh pr close tune-hyperparams
# drop existing refs
git ls-remote origin | awk '{print $2}' | xargs -n 1 git push --delete origin || true
# force push branches
git push --force origin main
git push --force origin try-large-dataset
git push --force origin tune-hyperparams
# we push git tags one by one for Studio to receive webhooks:
git tag --sort=creatordate | xargs -n 1 git push --force origin
# push exp refs
dvc exp push origin -A
# create PRs
gh pr create -t "Try 40K dataset (4x data)" \
-b "We are trying here a large dataset, since the smaller one looks unstable" \
-B main -H try-large-dataset
gh pr create -t "Run experiments tuning random forest params" \
-b "Better RF split and number of estimators based on small grid search." \
-B main -H tune-hyperparams
2 changes: 2 additions & 0 deletions .github/workflows/example-get-started-test.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,8 @@ on:
paths:
- example-get-started/**
workflow_dispatch:
schedule:
- cron: '0 0 * * 1'
permissions:
contents: read
id-token: write
Expand Down
10 changes: 8 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -40,8 +40,14 @@ $ ./deploy.sh

### example-get-started

You only directly need `generate.sh`. `deploy.sh` is a helper script run within
`generate.sh`.
There are 2 GitHub Actions set up to test and deploy the project:

- [test](.github/workflows/example-get-started-test.yaml)
- [deploy](.github/workflows/example-get-started-deploy.yaml)

These will automatically test and deploy the project. If you need to run the project
locally/manually, you only directly need `generate.sh`. `deploy.sh` is a helper script
run within `generate.sh`.

- `generate.sh`: Generates the `example-get-started` DVC project from
scratch.
Expand Down
4 changes: 2 additions & 2 deletions example-get-started/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -24,10 +24,10 @@ For the basic use case (docs and Studio demo), use the command below.
```

If change source code, to publish it on S3 (needed for the get started tutorial)
pass `true` to the command. It's needed when you ready to publish it.
pass `prod` to the command. It's needed when you ready to publish it.

```shell
./generate.sh true
./generate.sh prod
```

The repo generated in `build/example-get-started` is intended to be published on
Expand Down

0 comments on commit d9825ed

Please sign in to comment.