Update deploy.yml #17
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: Serverless Prod Deployment | |
on: | |
push: | |
branches: | |
- "main" | |
- "master" | |
concurrency: | |
# Cancel in-progress deploys to same branch | |
group: ${{ github.ref }}/deploy | |
cancel-in-progress: true | |
env: | |
DAGSTER_CLOUD_URL: "http://maxime-test.dagster.cloud" | |
DAGSTER_CLOUD_API_TOKEN: ${{ secrets.DAGSTER_CLOUD_API_TOKEN }} | |
ENABLE_FAST_DEPLOYS: 'true' | |
PYTHON_VERSION: '3.8' | |
DAGSTER_CLOUD_FILE: 'dagster_cloud.yaml' | |
jobs: | |
dagster_cloud_default_deploy: | |
name: Dagster Serverless Deploy | |
runs-on: ubuntu-20.04 | |
outputs: | |
build_info: ${{ steps.parse-workspace.outputs.build_info }} | |
steps: | |
- name: Prerun Checks | |
id: prerun | |
uses: dagster-io/dagster-cloud-action/actions/utils/[email protected] | |
- name: Launch Docker Deploy | |
if: steps.prerun.outputs.result == 'docker-deploy' | |
id: parse-workspace | |
uses: dagster-io/dagster-cloud-action/actions/utils/[email protected] | |
with: | |
dagster_cloud_file: $DAGSTER_CLOUD_FILE | |
- name: Checkout for Python Executable Deploy | |
if: steps.prerun.outputs.result == 'pex-deploy' | |
uses: actions/checkout@v3 | |
with: | |
ref: ${{ github.head_ref }} | |
path: project-repo | |
- name: Move Dagster folder to root | |
if: steps.prerun.outputs.result == 'pex-deploy' | |
run: | | |
cd project-repo | |
ls -lah | |
mkdir tmp_jaffle_dagster | |
shopt -s dotglob | |
mv jaffle_dagster/* tmp_jaffle_dagster | |
rm -rf jaffle_dagster | |
mv tmp_jaffle_dagster/* . | |
rm -rf tmp_jaffle_dagster | |
ls -lah | |
cd jaffle_shop | |
ls -lah | |
cd seeds | |
ls -lah | |
cd .. | |
cd models | |
ls -lah | |
cd ../../.. | |
- name: Prepare DBT project for deployment | |
if: steps.prerun.outputs.result == 'pex-deploy' | |
# --upgrade-strategy eager picks up newer packages that are required for things to work | |
run: | | |
pip install pip --upgrade | |
cd project-repo | |
pip install . --upgrade --upgrade-strategy eager | |
dagster-dbt project prepare-for-deployment --file jaffle_dagster/project.py | |
# The cli command below can be used to manage syncing the prod manifest to branches if state_path is set on the DbtProject | |
# dagster-cloud ci dagster-dbt project manage-state --file jaffle_dagster/project.py | |
shell: bash | |
- name: Python Executable Deploy | |
if: steps.prerun.outputs.result == 'pex-deploy' | |
uses: dagster-io/dagster-cloud-action/actions/[email protected] | |
with: | |
dagster_cloud_file: "$GITHUB_WORKSPACE/project-repo/$DAGSTER_CLOUD_FILE" | |
build_output_dir: "$GITHUB_WORKSPACE/build" | |
python_version: "${{ env.PYTHON_VERSION }}" | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
dagster_cloud_docker_deploy: | |
name: Docker Deploy | |
runs-on: ubuntu-20.04 | |
if: needs.dagster_cloud_default_deploy.outputs.build_info | |
needs: dagster_cloud_default_deploy | |
strategy: | |
fail-fast: false | |
matrix: | |
location: ${{ fromJSON(needs.dagster_cloud_default_deploy.outputs.build_info) }} | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v3 | |
with: | |
ref: ${{ github.head_ref }} | |
- name: Build and deploy to Dagster Cloud serverless | |
uses: dagster-io/dagster-cloud-action/actions/[email protected] | |
with: | |
dagster_cloud_api_token: ${{ secrets.DAGSTER_CLOUD_API_TOKEN }} | |
location: ${{ toJson(matrix.location) }} | |
base_image: "python:${{ env.PYTHON_VERSION }}-slim" | |
# Uncomment to pass through Github Action secrets as a JSON string of key-value pairs | |
# env_vars: ${{ toJson(secrets) }} | |
organization_id: ${{ secrets.ORGANIZATION_ID }} | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |