diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml new file mode 100644 index 00000000..7bf9faa7 --- /dev/null +++ b/.github/workflows/build.yaml @@ -0,0 +1,31 @@ +name: Build +on: + push: + branches: [main] +env: + VITE_DEFAULT_HOMESERVER: "https://call.ems.host" + VITE_SENTRY_DSN: https://b1e328d49be3402ba96101338989fb35@sentry.matrix.org/41 + VITE_SENTRY_ENVIRONMENT: main-branch-cd + VITE_RAGESHAKE_SUBMIT_URL: https://element.io/bugreports/submit +jobs: + build: + name: Build + runs-on: ubuntu-latest + steps: + - name: Checkout code + uses: actions/checkout@v2 + - name: Yarn cache + uses: actions/setup-node@v3 + with: + cache: 'yarn' + - name: Install dependencies + run: "yarn install" + - name: Build + run: "yarn run build" + - name: Upload Artifact + uses: actions/upload-artifact@v2 + with: + name: build + path: dist + # We'll only use this in a triggered job, then we're done with it + retention-days: 1 diff --git a/.github/workflows/netlify-main.yaml b/.github/workflows/netlify-main.yaml new file mode 100644 index 00000000..a9ab0696 --- /dev/null +++ b/.github/workflows/netlify-main.yaml @@ -0,0 +1,75 @@ +name: Netlify Main +on: + workflow_run: + workflows: ["Build"] + types: + - completed + +jobs: + deploy: + runs-on: ubuntu-latest + permissions: + deployments: write + if: github.event.workflow_run.conclusion == 'success' + steps: + - name: Create Deployment + uses: bobheadxi/deployments@v1 + id: deployment + with: + step: start + token: ${{ secrets.GITHUB_TOKEN }} + env: main-branch-cd + ref: ${{ github.event.workflow_run.head_sha }} + + - name: 'Download artifact' + uses: actions/github-script@v3.1.0 + with: + script: | + const artifacts = await github.actions.listWorkflowRunArtifacts({ + owner: context.repo.owner, + repo: context.repo.repo, + run_id: ${{ github.event.workflow_run.id }}, + }); + const matchArtifact = artifacts.data.artifacts.filter((artifact) => { + return artifact.name == "build" + })[0]; + const download = await github.actions.downloadArtifact({ + owner: context.repo.owner, + repo: context.repo.repo, + artifact_id: matchArtifact.id, + archive_format: 'zip', + }); + const fs = require('fs'); + fs.writeFileSync('${{github.workspace}}/build.zip', Buffer.from(download.data)); + + - name: Extract Artifacts + run: unzip -d dist build.zip && rm build.zip + + - name: Deploy to Netlify + id: netlify + uses: nwtgck/actions-netlify@v1.2.3 + with: + publish-dir: dist + deploy-message: "Deploy from GitHub Actions" + production-branch: main + production-deploy: true + # These don't work because we're in workflow_run + enable-pull-request-comment: false + enable-commit-comment: false + github-deployment-environment: main + env: + NETLIFY_AUTH_TOKEN: ${{ secrets.NETLIFY_AUTH_TOKEN }} + NETLIFY_SITE_ID: ${{ secrets.NETLIFY_SITE_ID }} + timeout-minutes: 1 + + - name: Update deployment status + uses: bobheadxi/deployments@v1 + if: always() + with: + step: finish + override: false + token: ${{ secrets.GITHUB_TOKEN }} + status: ${{ job.status }} + env: ${{ steps.deployment.outputs.env }} + deployment_id: ${{ steps.deployment.outputs.deployment_id }} + env_url: ${{ steps.netlify.outputs.deploy-url }} diff --git a/src/main.jsx b/src/main.jsx index d620ff91..d9a87d26 100644 --- a/src/main.jsx +++ b/src/main.jsx @@ -54,6 +54,7 @@ const history = createBrowserHistory(); Sentry.init({ dsn: import.meta.env.VITE_SENTRY_DSN, + environment: import.meta.env.VITE_SENTRY_ENVIRONMENT ?? "production", integrations: [ new Integrations.BrowserTracing({ routingInstrumentation: Sentry.reactRouterV5Instrumentation(history),