Use specific version instead of branch name (#4225) #27
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: Open release | |
on: | |
push: | |
branches: | |
# Matches release branches | |
- "[0-9]+.[0-9]+" | |
concurrency: ${{ github.workflow }}-${{ github.ref }} | |
jobs: | |
prepare: | |
name: Prepare release with Changesets | |
runs-on: ubuntu-22.04 | |
outputs: | |
hasChangesets: ${{ steps.changesets.outputs.hasChangesets }} | |
permissions: | |
contents: write | |
pull-requests: write | |
steps: | |
- name: Checkout Repo | |
uses: actions/checkout@v3 | |
- name: Setup Node | |
uses: actions/setup-node@v3 | |
with: | |
node-version-file: ".nvmrc" | |
- name: Install Dependencies | |
run: npm ci | |
- name: Publishing version | |
uses: changesets/action@d89c1de63c7f28ac47ec85ed395f5f1d045d4697 # v1.4.4 | |
id: changesets | |
with: | |
title: "Prepare release ${{ github.ref_name }}" | |
commit: "Release ${{ github.ref_name }}" | |
publish: "npm run release" | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
release: | |
name: Deploy and release to sandbox | |
needs: prepare | |
if: needs.prepare.outputs.hasChangesets == 'false' | |
runs-on: ubuntu-22.04 | |
env: | |
API_URI: /graphql/ | |
APP_MOUNT_URI: /dashboard/ | |
STATIC_URL: /dashboard/static/ | |
SENTRY_ORG: saleor | |
SENTRY_PROJECT: dashboard | |
SENTRY_URL_PREFIX: "~/dashboard/static" | |
SENTRY_DSN: ${{ secrets.SENTRY_DSN }} | |
SENTRY_AUTH_TOKEN: ${{ secrets.SENTRY_AUTH_TOKEN }} | |
APPS_MARKETPLACE_API_URI: "https://apps.staging.saleor.io/api/v2/saleor-apps" | |
VERSION: ${{ github.event.inputs.git_ref || github.ref_name }} | |
IS_CLOUD_INSTANCE: true | |
steps: | |
- name: Checkout Repo | |
uses: actions/checkout@v3 | |
- name: Setup Node | |
uses: actions/setup-node@v3 | |
with: | |
node-version-file: ".nvmrc" | |
- name: Install Dependencies | |
run: npm ci | |
- name: Build | |
run: | | |
npm run build | |
- name: Configure AWS Credentials | |
uses: aws-actions/configure-aws-credentials@v4 | |
with: | |
aws-access-key-id: ${{ secrets.AWS_DASHBOARD_STAGING_ACCESS_KEY_ID }} | |
aws-secret-access-key: ${{ secrets.AWS_DASHBOARD_STAGING_SECRET_ACCESS_KEY }} | |
aws-region: us-east-1 | |
- name: Deploy | |
run: | | |
aws s3 sync build/dashboard s3://${{ secrets.AWS_STAGING_DEPLOYMENT_BUCKET }}/${ENVIRONMENT}/static/ | |
aws s3 cp build/dashboard/index.html s3://${{ secrets.AWS_STAGING_DEPLOYMENT_BUCKET }}/${ENVIRONMENT}/ | |
for i in {1..3}; do aws cloudfront create-invalidation --distribution-id ${{ secrets.AWS_STAGING_CF_DIST_ID }} --paths "/dashboard*" && break || sleep 5; done | |
- name: Prepare Sandbox release pull request | |
run: | | |
export GITHUB_TOKEN=$( \ | |
curl --request GET --url ${{ secrets.VAULT_URL}} --header "Authorization: JWT ${{ secrets.VAULT_JWT }}" | jq -r .token \ | |
) | |
version=$(cat package.json | jq -r .version) | |
payload=$(jq --null-input --arg version "$version" '{ | |
"event_type": "open-release-pull-request", | |
"client_payload": { | |
"project": "DASHBOARD", | |
"environment": "SANDBOX", | |
"version": $version | |
} | |
}') | |
gh api /repos/saleor/saleor-cloud-deployments/dispatches --input - <<< $payload |