(fix): use fdr-version.sh for fdr sdks #131
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: Deploy FDR | |
on: | |
push: | |
branches: [main] | |
tags: ["*"] | |
env: | |
PACKAGE_NAME: "@fern-platform/fdr" | |
TURBO_TOKEN: ${{ secrets.TURBO_TOKEN }} | |
TURBO_TEAM: "buildwithfern" | |
FERN_TOKEN: ${{ secrets.FERN_TOKEN }} | |
AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }} | |
AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }} | |
FERNIE_SLACK_APP_TOKEN: ${{ secrets.FERNIE_SLACK_APP_TOKEN }} | |
GITHUB_TOKEN: ${{ secrets.FERN_GITHUB_TOKEN }} | |
NPM_TOKEN: ${{ secrets.FERN_NPM_TOKEN }} | |
jobs: | |
changes: | |
runs-on: ubuntu-latest | |
outputs: | |
fdr: ${{ steps.filter.outputs.fdr }} | |
steps: | |
- uses: actions/checkout@v2 | |
- uses: dorny/paths-filter@v2 | |
id: filter | |
with: | |
filters: | | |
fdr: | |
- 'fern/apis/fdr/**' | |
- 'fern/fern.config.json' | |
- 'servers/fdr-deploy/**' | |
- 'servers/fdr/**' | |
- '.github/workflows/deploy-fdr.yml' | |
- 'packages/fdr-sdk/**' | |
deploy_dev: | |
runs-on: ubuntu-latest | |
# Only run on main push | |
needs: changes | |
if: github.ref == 'refs/heads/main' && github.event_name == 'push' && ${{ needs.changes.outputs.fdr == 'true' }} | |
environment: Fern Dev | |
env: | |
DATABASE_URL: ${{ secrets.DATABASE_URL }}/fdr?schema=public | |
ALGOLIA_APP_ID: ${{ secrets.ALGOLIA_APP_ID }} | |
ALGOLIA_ADMIN_API_KEY: ${{ secrets.ALGOLIA_ADMIN_API_KEY }} | |
ALGOLIA_SEARCH_INDEX: ${{ secrets.ALGOLIA_SEARCH_INDEX }} | |
ALGOLIA_SEARCH_API_KEY: ${{ secrets.ALGOLIA_SEARCH_API_KEY }} | |
steps: | |
- uses: actions/checkout@v4 | |
- name: π₯ Install | |
uses: ./.github/actions/install | |
- name: π Has changed | |
id: has-changed | |
# if there are changes, npx turbo-ignore returns a failure exit code | |
# which makes steps.has-changed.outputs.RESULT = 'true' | |
run: npx turbo-ignore ${{ env.PACKAGE_NAME }} || echo "RESULT=true" >> $GITHUB_OUTPUT | |
- name: πͺ΄ Generate Fern SDKs | |
run: | | |
pnpm fern generate --local --group local --log-level debug | |
env: | |
FERN_TOKEN: ${{ secrets.FERN_TOKEN }} | |
- name: π§ͺ Build and test | |
run: pnpm turbo codegen build test --filter=${{ env.PACKAGE_NAME }} | |
- name: π» Setup AWS CLI | |
uses: aws-actions/configure-aws-credentials@v1 | |
with: | |
aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }} | |
aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }} | |
aws-region: us-east-1 | |
# Currently we migrate in the Docker container | |
# - name: π DB Migration | |
# run: pnpm run --filter=@fern-platform/fdr db:migrate:dev | |
# env: | |
# DATABASE_URL: ${{ secrets.DEV_POSTGRES_URL }}/fdr?schema=public | |
- name: π cdk deploy | |
run: | | |
git_version="$(scripts/git-version.sh)" | |
pnpm --filter=@fern-platform/fdr run docker:dev "${git_version}" | |
npm install -g aws-cdk | |
cd servers/fdr-deploy | |
VERSION="${git_version}" pnpm --filter=@fern-platform/fdr-deploy deploy:dev | |
env: | |
DATABASE_URL: ${{ secrets.DEV_POSTGRES_URL }}/fdr?schema=public | |
publish_sdk: | |
runs-on: ubuntu-latest | |
needs: changes | |
if: ${{ needs.changes.outputs.fdr == 'true' }} || startsWith(github.ref, 'refs/tags/fdr@') | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
fetch-depth: 0 | |
- name: π₯ Install | |
uses: ./.github/actions/install | |
- name: π§ͺ Build and test | |
run: pnpm turbo codegen build test --filter=${{ env.PACKAGE_NAME }} | |
- name: Publish FDR SDK | |
run: | | |
git_version="$(scripts/fdr-version.sh)" | |
cd packages/fdr-sdk | |
mv package.json package.json.tmp | |
version_replace="s/0.0.0/${git_version}/" | |
cat package.json.tmp| sed "${version_replace}" > package.json | |
rm -rf package.json.tmp | |
echo "//registry.npmjs.org/:_authToken=${NPM_TOKEN}" > ~/.npmrc | |
npm publish --access public | |
deploy_prod: | |
runs-on: ubuntu-latest | |
if: github.ref_type == 'tag' && github.event_name == 'push' && startsWith(github.ref, 'refs/tags/fdr@') | |
environment: Fern Prod | |
env: | |
DATABASE_URL: ${{ secrets.DATABASE_URL }}/fdr?schema=public | |
ALGOLIA_APP_ID: ${{ secrets.ALGOLIA_APP_ID }} | |
ALGOLIA_ADMIN_API_KEY: ${{ secrets.ALGOLIA_ADMIN_API_KEY }} | |
ALGOLIA_SEARCH_INDEX: ${{ secrets.ALGOLIA_SEARCH_INDEX }} | |
ALGOLIA_SEARCH_API_KEY: ${{ secrets.ALGOLIA_SEARCH_API_KEY }} | |
steps: | |
- uses: actions/checkout@v4 | |
- name: π₯ Install | |
uses: ./.github/actions/install | |
- name: πͺ΄ Generate Code | |
run: | | |
pnpm fern generate --local --group local --log-level debug | |
env: | |
FERN_TOKEN: ${{ secrets.FERN_TOKEN }} | |
- name: π§ͺ Build and test | |
run: pnpm turbo build test --filter=${{ env.PACKAGE_NAME }} | |
- name: π» Setup AWS CLI | |
uses: aws-actions/configure-aws-credentials@v1 | |
with: | |
aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }} | |
aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }} | |
aws-region: us-east-1 | |
# Currently we migrate in the Docker container | |
# - name: π DB Migration | |
# run: pnpm run --filter=@fern-platform/fdr db:migrate:prod | |
# env: | |
# DATABASE_URL: ${{ secrets.DATABASE_URL }}/fdr?schema=public | |
- name: π cdk deploy | |
run: | | |
git_version="$(scripts/git-version.sh)" | |
pnpm run --filter=@fern-platform/fdr docker:prod "${git_version}" | |
npm install -g aws-cdk | |
cd servers/fdr-deploy | |
VERSION="${git_version}" pnpm --filter=@fern-platform/fdr-deploy deploy:prod |