From da14ab376acafd3ff316ecb6df142a4ceac74ebb Mon Sep 17 00:00:00 2001 From: Tom Doughty Date: Thu, 21 Nov 2019 14:10:24 +0000 Subject: [PATCH] Refactor actions --- .../actions/upload_release_artifact/index.js | 37 +++++++++++++++++-- .../upload-artifact.js | 34 ----------------- .../{create-release.yml => release.yml} | 4 +- 3 files changed, 35 insertions(+), 40 deletions(-) delete mode 100644 .github/actions/upload_release_artifact/upload-artifact.js rename .github/workflows/{create-release.yml => release.yml} (95%) diff --git a/.github/actions/upload_release_artifact/index.js b/.github/actions/upload_release_artifact/index.js index bca39e5..f0eba57 100644 --- a/.github/actions/upload_release_artifact/index.js +++ b/.github/actions/upload_release_artifact/index.js @@ -1,5 +1,34 @@ -const run = require('./upload-artifact'); +const core = require('@actions/core'); +const { GitHub } = require('@actions/github'); +const fs = require('fs'); -if (require.main === module) { - run(); -} +(async () => { + try { + const event = JSON.parse(fs.readFileSync(process.env.GITHUB_EVENT_PATH)); + console.log(event); + + // Get authenticated GitHub client (Ocktokit): https://github.com/actions/toolkit/tree/master/packages/github#usage + const github = new GitHub(process.env.GITHUB_TOKEN); + const assetPath = core.getInput('asset_path', { required: true }); + const assetName = core.getInput('asset_name', { required: true }); + + // Determine content-length for header to upload asset + const contentLength = filePath => fs.statSync(filePath).size; + + // Setup headers for API call, see Octokit Documentation: https://octokit.github.io/rest.js/#octokit-routes-repos-upload-release-asset for more information + const headers = { 'content-type': 'application/zip', 'content-length': contentLength(assetPath) }; + + // Upload a release asset + // API Documentation: https://developer.github.com/v3/repos/releases/#upload-a-release-asset + // Octokit Documentation: https://octokit.github.io/rest.js/#octokit-routes-repos-upload-release-asset + await github.repos.uploadReleaseAsset({ + url: event.release.upload_url, + headers, + name: assetName, + file: fs.readFileSync(assetPath) + }); + + } catch (error) { + core.setFailed(error.message); + } +})(); diff --git a/.github/actions/upload_release_artifact/upload-artifact.js b/.github/actions/upload_release_artifact/upload-artifact.js deleted file mode 100644 index 65c8cdf..0000000 --- a/.github/actions/upload_release_artifact/upload-artifact.js +++ /dev/null @@ -1,34 +0,0 @@ -const core = require('@actions/core'); -const { GitHub } = require('@actions/github'); -const fs = require('fs'); - -module.exports = async () => { - try { - const event = JSON.parse(fs.readFileSync(process.env.GITHUB_EVENT_PATH)); - console.log(event); - - // Get authenticated GitHub client (Ocktokit): https://github.com/actions/toolkit/tree/master/packages/github#usage - const github = new GitHub(process.env.GITHUB_TOKEN); - const assetPath = core.getInput('asset_path', { required: true }); - const assetName = core.getInput('asset_name', { required: true }); - - // Determine content-length for header to upload asset - const contentLength = filePath => fs.statSync(filePath).size; - - // Setup headers for API call, see Octokit Documentation: https://octokit.github.io/rest.js/#octokit-routes-repos-upload-release-asset for more information - const headers = { 'content-type': 'application/zip', 'content-length': contentLength(assetPath) }; - - // Upload a release asset - // API Documentation: https://developer.github.com/v3/repos/releases/#upload-a-release-asset - // Octokit Documentation: https://octokit.github.io/rest.js/#octokit-routes-repos-upload-release-asset - await github.repos.uploadReleaseAsset({ - url: event.release.upload_url, - headers, - name: assetName, - file: fs.readFileSync(assetPath) - }); - - } catch (error) { - core.setFailed(error.message); - } -} diff --git a/.github/workflows/create-release.yml b/.github/workflows/release.yml similarity index 95% rename from .github/workflows/create-release.yml rename to .github/workflows/release.yml index 854e9eb..4a1386c 100644 --- a/.github/workflows/create-release.yml +++ b/.github/workflows/release.yml @@ -1,4 +1,4 @@ -name: Deploy Release +name: Release on: release: @@ -31,7 +31,7 @@ jobs: uses: crazy-max/ghaction-github-pages@v1 with: target_branch: gh-pages - build_dir: out + build_dir: .dist/docs env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}