Skip to content

fix(full): Add full steps #398

fix(full): Add full steps

fix(full): Add full steps #398

Workflow file for this run

---
name: CI
on: [push]
jobs:
deploy:
name: Deploy to GitHub and PyPI
runs-on: ubuntu-latest
if: github.ref == 'refs/heads/master' && github.repository_owner == 'pollination'
steps:
- uses: actions/checkout@v2
- name: set up Python
uses: actions/setup-python@v2
with:
python-version: 3.7
- name: set up node # we need node for for semantic release
uses: actions/setup-node@v2.1.2
with:
node-version: 14.2.0
- name: install python dependencies
run: |
pip install -r dev-requirements.txt
pip install .
- name: install semantic-release
run: npm install @semantic-release/exec
- name: run semantic release
id: new_release
run: |
nextRelease="`npx semantic-release@^17.0.0 --dryRun | grep -oP 'Published release \K.*? ' || true`"
npx semantic-release@^17.0.0
echo "::set-output name=tag::$nextRelease"
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
PYPI_USERNAME: ${{ secrets.POLLINATION_PYPI_USERNAME }}
PYPI_PASSWORD: ${{ secrets.POLLINATION_PYPI_PASSWORD }}
outputs:
tag: ${{ steps.new_release.outputs.tag }}
deploy-to-staging:
name: Deploy to Pollination Staging
runs-on: ubuntu-latest
needs: deploy
if: ${{ github.ref == 'refs/heads/master' && github.repository_owner == 'pollination' && contains(needs.deploy.outputs.tag, '.') }}
steps:
- uses: actions/checkout@v2
- name: set up Python
uses: actions/setup-python@v2
with:
python-version: 3.7
- name: install python dependencies
run: pip install .
- name: deploy to staging
run: |
queenbee
pollination dsl push pollination-annual-daylight --tag ${{needs.deploy.outputs.tag}} -e https://api.staging.pollination.cloud -src https://api.staging.pollination.cloud/registries --push-dependencies
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
QB_POLLINATION_TOKEN: ${{ secrets.POLLINATION_STAGING_LADYBUGBOT_TOKEN }}
deploy-viz-and-full:
name: Deploy `viz` and `full` branches
runs-on: ubuntu-latest
needs: [deploy, deploy-to-staging]
if: ${{ github.ref == 'refs/heads/master' && github.repository_owner == 'pollination' && contains(needs.deploy.outputs.tag, '.') }}
strategy:
fail-fast: true
matrix:
branch: [full, viz]
max-parallel: 1
steps:
- uses: actions/checkout@v2
with:
ref: ${{ matrix.branch }}
fetch-depth: 0
- name: rebase ${{ matrix.branch }} branch
run: |
git config --global user.email "ci@pollination.cloud"
git config --global user.name "GitHub Actions"
git rebase origin/master
- name: install python additional dependencies
run: |
pip install -r dev-requirements.txt
pip install .[viz]
- name: deploy ${{ matrix.branch }} branch to staging
env:
TAG: ${{ needs.deploy.outputs.tag }}
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
QB_POLLINATION_TOKEN: ${{ secrets.POLLINATION_STAGING_LADYBUGBOT_TOKEN }}
run: |
TAG=$(echo "${TAG:?}" | sed 's/[[:space:]]//g')
echo $TAG-${{ matrix.branch }}
queenbee
pollination dsl push pollination-annual-daylight --tag $TAG-${{ matrix.branch }} -e https://api.staging.pollination.cloud -src https://api.staging.pollination.cloud/registries --push-dependencies
- name: deploy ${{ matrix.branch }} branch to PyPI
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
PYPI_USERNAME: ${{ secrets.POLLINATION_PYPI_USERNAME }}
PYPI_PASSWORD: ${{ secrets.POLLINATION_PYPI_PASSWORD }}
run: |
python setup.py sdist bdist_wheel --branch ${{ matrix.branch }}
echo "Pushing new version to PyPi"
twine upload dist/* -u $PYPI_USERNAME -p $PYPI_PASSWORD
deploy-to-production:
name: Deploy to Pollination Production
runs-on: ubuntu-latest
if: github.ref == 'refs/heads/production' && github.repository_owner == 'pollination'
steps:
- uses: actions/checkout@v2
with:
fetch-depth: 0
- name: set up Python
uses: actions/setup-python@v2
with:
python-version: 3.7
- name: Get Job Context
id: get-context
run: |
TAG=$(git describe --tags | sed 's/v//')
echo "Releasing tag: ${TAG:?}"
echo "::set-output name=tag::$TAG"
- name: install python dependencies
run: |
pip install pollination-annual-daylight
pip install -r requirements.txt
- name: deploy to production
run: |
TAG=$(echo "${TAG:?}" | sed 's/[[:space:]]//g')
echo $TAG
queenbee
pollination dsl push pollination-annual-daylight --tag $TAG -e https://api.pollination.cloud -src https://api.pollination.cloud/registries --push-dependencies
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
QB_POLLINATION_TOKEN: ${{ secrets.POLLINATION_LADYBUGBOT_TOKEN }}
TAG: ${{ steps.get-context.outputs.tag }}
outputs:
tag: ${{ steps.get-context.outputs.tag }}
deploy-viz-and-full-to-production:
name: Deploy `viz` and `full` branches
runs-on: ubuntu-latest
needs: [deploy-to-production]
if: github.ref == 'refs/heads/production' && github.repository_owner == 'pollination'
strategy:
fail-fast: true
matrix:
branch: [full, viz]
max-parallel: 1
steps:
- uses: actions/checkout@v2
with:
ref: ${{ matrix.branch }}
fetch-depth: 0
- name: rebase ${{ matrix.branch }} branch
run: |
git config --global user.email "ci@pollination.cloud"
git config --global user.name "GitHub Actions"
git rebase origin/production
- name: install python viz dependencies
run: pip install .[viz]
- name: deploy ${{ matrix.branch }} to production
env:
TAG: ${{ needs.deploy-to-production.outputs.tag }}
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
QB_POLLINATION_TOKEN: ${{ secrets.POLLINATION_LADYBUGBOT_TOKEN }}
run: |
TAG=$(echo "${TAG:?}" | sed 's/[[:space:]]//g')
echo $TAG-${{ matrix.branch }}
queenbee
pollination dsl push pollination-annual-daylight --tag $TAG-${{ matrix.branch }} -e https://api.pollination.cloud -src https://api.pollination.cloud/registries --push-dependencies