Fix Netflify builds from fork PRs

Some absolutely horrenous hacks to upload the context as an artifact
then download it, unzip it and set the PR number as a variable we can
use, because GitHub Actions just doesn't offer any other way of doing
this.

Maybe we'd be better off going back to Netlify...
This commit is contained in:
David Baker 2021-08-11 19:25:17 +01:00
parent eadc94035d
commit cf8ee19e23
2 changed files with 35 additions and 2 deletions

View file

@ -16,4 +16,16 @@ jobs:
path: element-web/webapp path: element-web/webapp
# We'll only use this in a triggered job, then we're done with it # We'll only use this in a triggered job, then we're done with it
retention-days: 1 retention-days: 1
- uses: actions/github-script@v3.1.0
with:
script: |
var fs = require('fs');
fs.writeFileSync('${{github.workspace}}/context.json', JSON.stringify(context));
- name: Upload Context
uses: actions/upload-artifact@v2
with:
name: context.json
path: context.json
# We'll only use this in a triggered job, then we're done with it
retention-days: 1

View file

@ -33,7 +33,28 @@ jobs:
}); });
var fs = require('fs'); var fs = require('fs');
fs.writeFileSync('${{github.workspace}}/previewbuild.zip', Buffer.from(download.data)); fs.writeFileSync('${{github.workspace}}/previewbuild.zip', Buffer.from(download.data));
- run: unzip previewbuild.zip && rm previewbuild.zip
var contextArtifact = artifacts.data.artifacts.filter((artifact) => {
return artifact.name == "context.json"
})[0];
var download = await github.actions.downloadArtifact({
owner: context.repo.owner,
repo: context.repo.repo,
artifact_id: contextArtifact.id,
archive_format: 'zip',
});
var fs = require('fs');
fs.writeFileSync('${{github.workspace}}/context.json.zip', Buffer.from(download.data));
- name: Extract Artifacts
run: unzip -d webapp previewbuild.zip && rm previewbuild.zip && unzip context.json && rm context.json.zip
- name: 'Read Context'
id: readctx
uses: actions/github-script@v3.1.0
with:
script: |
var fs = require('fs');
var ctx = JSON.parse(fs.readFileSync('${{github.workspace}}/context.json'));
console.log(`::set-output name=prnumber::${ctx.payload.pull_request.number}`);
- name: Deploy to Netlify - name: Deploy to Netlify
id: netlify id: netlify
uses: nwtgck/actions-netlify@v1.2 uses: nwtgck/actions-netlify@v1.2
@ -51,7 +72,7 @@ jobs:
uses: phulsechinmay/rewritable-pr-comment@v0.3.0 uses: phulsechinmay/rewritable-pr-comment@v0.3.0
with: with:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
ISSUE_ID: ${{ github.event.workflow_run.pull_requests[0].number }} ISSUE_ID: ${{ steps.readctx.outputs.prnumber }}
message: | message: |
Preview: ${{ steps.netlify.outputs.deploy-url }} Preview: ${{ steps.netlify.outputs.deploy-url }}
⚠️ Do you trust the author of this PR? Maybe this build will steal your keys or give you malware. Exercise caution. Use test accounts. ⚠️ Do you trust the author of this PR? Maybe this build will steal your keys or give you malware. Exercise caution. Use test accounts.