mirror of https://github.com/buster-so/buster.git
82 lines
2.8 KiB
YAML
82 lines
2.8 KiB
YAML
"on":
|
|
push:
|
|
branches:
|
|
- main
|
|
paths:
|
|
- api/**
|
|
name: Deploy to main
|
|
jobs:
|
|
database-deploy:
|
|
runs-on: blacksmith-16vcpu-ubuntu-2204
|
|
if: contains(github.event.head_commit.modified_files, 'api/migrations/') || contains(github.event.head_commit.added_files, 'api/migrations/')
|
|
environment: main
|
|
steps:
|
|
- name: Checkout code
|
|
uses: actions/checkout@v3
|
|
|
|
- name: Install Rust
|
|
uses: actions-rs/toolchain@v1
|
|
with:
|
|
toolchain: stable
|
|
profile: minimal
|
|
override: true
|
|
|
|
- name: Cache Rust dependencies
|
|
uses: Swatinem/rust-cache@v2
|
|
|
|
- name: Install Diesel CLI
|
|
run: cargo install diesel_cli --no-default-features --features postgres
|
|
|
|
- name: Configure AWS Credentials
|
|
uses: aws-actions/configure-aws-credentials@v4
|
|
with:
|
|
aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }}
|
|
aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
|
|
aws-region: ${{ secrets.AWS_REGION }}
|
|
|
|
- name: Download Postgres certificate from S3
|
|
run: |
|
|
mkdir -p ~/.postgresql
|
|
aws s3 cp ${{ secrets.CERT_S3_URL }} ~/.postgresql/root.crt
|
|
|
|
- name: Run migrations
|
|
working-directory: ./api
|
|
run: diesel migration run
|
|
env:
|
|
DATABASE_URL: ${{ secrets.DB_URL }}
|
|
PGSSLMODE: verify-full
|
|
|
|
porter-deploy:
|
|
runs-on: ubuntu-latest
|
|
environment: main
|
|
steps:
|
|
- name: Checkout code
|
|
uses: actions/checkout@v4
|
|
- name: Configure AWS Credentials
|
|
uses: aws-actions/configure-aws-credentials@v4
|
|
with:
|
|
aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }}
|
|
aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
|
|
aws-region: ${{ secrets.AWS_REGION }}
|
|
- name: Download SSL certificate from S3
|
|
run: |
|
|
aws s3 cp ${{ secrets.CERT_S3_URL }} ./api/cert.pem
|
|
- name: Set Github tag
|
|
id: vars
|
|
run: echo "sha_short=$(git rev-parse --short HEAD)" >> $GITHUB_OUTPUT
|
|
- name: Setup porter
|
|
uses: porter-dev/setup-porter@v0.1.0
|
|
- name: Deploy stack
|
|
timeout-minutes: 30
|
|
run: exec porter apply
|
|
env:
|
|
PORTER_APP_NAME: main
|
|
PORTER_CLUSTER: "3155"
|
|
PORTER_DEPLOYMENT_TARGET_ID: 7f44813f-4b0c-4be7-add0-94ebb61256bf
|
|
PORTER_HOST: https://dashboard.porter.run
|
|
PORTER_PR_NUMBER: ${{ github.event.number }}
|
|
PORTER_PROJECT: "9309"
|
|
PORTER_REPO_NAME: ${{ github.event.repository.name }}
|
|
PORTER_TAG: ${{ steps.vars.outputs.sha_short }}
|
|
PORTER_TOKEN: ${{ secrets.PORTER_APP_9309_3155 }}
|