fix(full): Add full steps #398
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
--- | |
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 |