From 65a0f5cb006bce2a83e6c08c2aefab24526c3512 Mon Sep 17 00:00:00 2001 From: jem Date: Mon, 29 Jun 2020 21:59:31 +0200 Subject: [PATCH] add github actions --- .github/FUNDING.yml | 3 + .github/workflows/release.yml | 102 ++++++++++++++++++++++++++++++++++ .github/workflows/test-pr.yml | 42 ++++++++++++++ package.json | 2 +- shadow-cljs.edn | 3 +- 5 files changed, 149 insertions(+), 3 deletions(-) create mode 100644 .github/FUNDING.yml create mode 100644 .github/workflows/release.yml create mode 100644 .github/workflows/test-pr.yml diff --git a/.github/FUNDING.yml b/.github/FUNDING.yml new file mode 100644 index 0000000..c5d6415 --- /dev/null +++ b/.github/FUNDING.yml @@ -0,0 +1,3 @@ +# These are supported funding model platforms + +github: jerger diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml new file mode 100644 index 0000000..1599b21 --- /dev/null +++ b/.github/workflows/release.yml @@ -0,0 +1,102 @@ +name: release prod +on: + push: + tags: '[0-9]+.[0-9]+.[0-9]+*' + +jobs: + release: + name: release + runs-on: ubuntu-latest + strategy: + matrix: + node-version: [14.x] + + steps: + - uses: actions/checkout@v2 + + - name: Cache node modules + uses: actions/cache@v2 + env: + cache-name: cache-node-modules + with: + # npm cache files are stored in `~/.npm` on Linux/macOS + path: ~/.npm + key: ${{ runner.os }}-build-${{ env.cache-name }}-${{ hashFiles('**/package.json') }} + restore-keys: | + ${{ runner.os }}-build-${{ env.cache-name }}- + ${{ runner.os }}-build- + ${{ runner.os }}- + + - name: Use Node.js ${{ matrix.node-version }} + uses: actions/setup-node@v1 + with: + node-version: ${{ matrix.node-version }} + + - name: test em + run: | + npm install + npm install -g --save-dev shadow-cljs + shadow-cljs compile test + + - name: build em + run: | + shadow-cljs release frontend + sha256sum public/js/main.js > target/dda-masto-embedd.js.sha256 + sha512sum public/js/main.js > target/dda-masto-embedd.js.sha512 + + - name: Create Release + id: create_release + uses: actions/create-release@v1 + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + with: + tag_name: ${{ github.ref }} + release_name: Release ${{ github.ref }} + draft: false + prerelease: false + + - name: Upload masto-embedd.js + id: upload-masto-embedd-js + uses: actions/upload-release-asset@v1 + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + with: + upload_url: ${{ steps.create_release.outputs.upload_url }} + asset_path: public/js/main.js + asset_name: dda-masto-embed.js + asset_content_type: application/json + + - name: Upload masto-embedd.js.sha256 + id: upload-masto-embedd-js-sha256 + uses: actions/upload-release-asset@v1 + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + with: + upload_url: ${{ steps.create_release.outputs.upload_url }} + asset_path: target/dda-masto-embedd.js.sha256 + asset_name: dda-masto-embedd.js.sha256 + asset_content_type: application/json + + - name: Upload masto-embedd.js.sha512 + id: upload-masto-embedd-js-sha512 + uses: actions/upload-release-asset@v1 + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + with: + upload_url: ${{ steps.create_release.outputs.upload_url }} + asset_path: target/dda-masto-embedd.js.sha512 + asset_name: dda-masto-embedd.js.sha512 + asset_content_type: application/json + + - name: upload to npm + env: + NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }} + run: | + mkdir -p target/npm-build + cp public/js/main.js target/npm-build/ + cp target/dda-masto-embedd.js.sha256 target/npm-build/ + cp target/dda-masto-embedd.js.sha512 target/npm-build/ + cp package.json target/npm-build/ + cp README.md target/npm-build/ + tar -cz -C target/npm-build -f target/npm-build.tgz . + npm publish ./target/npm-build.tgz --access public diff --git a/.github/workflows/test-pr.yml b/.github/workflows/test-pr.yml new file mode 100644 index 0000000..d736100 --- /dev/null +++ b/.github/workflows/test-pr.yml @@ -0,0 +1,42 @@ +name: test PR + +on: + pull_request: + branches: [ master ] + push: + ingnored-branches: [ 'master' ] + +jobs: + test-pr-matrix: + name: matrix test for pull requests + runs-on: ubuntu-latest + strategy: + matrix: + node-version: [10.x, 12.x, 14.x] + + steps: + - uses: actions/checkout@v2 + + - name: Cache node modules + uses: actions/cache@v2 + env: + cache-name: cache-node-modules + with: + # npm cache files are stored in `~/.npm` on Linux/macOS + path: /usr/lib/node_modules + key: ${{ runner.os }}-build-${{ env.cache-name }}-${{ hashFiles('**/package.json') }} + restore-keys: | + ${{ runner.os }}-build-${{ env.cache-name }}- + ${{ runner.os }}-build- + ${{ runner.os }}- + + - name: Use Node.js ${{ matrix.node-version }} + uses: actions/setup-node@v1 + with: + node-version: ${{ matrix.node-version }} + + - name: test em + run: | + npm install + npm install -g --save-dev shadow-cljs + shadow-cljs compile test diff --git a/package.json b/package.json index 78ab50d..38d609b 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "dda-masto-embed", "version": "0.0.1", - "private": true, + "private": false, "devDependencies": { "shadow-cljs": "^2.8.104", "source-map-support": "^0.5.19" diff --git a/shadow-cljs.edn b/shadow-cljs.edn index 7d8fbec..e5cc392 100644 --- a/shadow-cljs.edn +++ b/shadow-cljs.edn @@ -7,8 +7,7 @@ :dependencies [[orchestra "2019.02.06-1"] [hiccups "0.3.0"] - [com.andrewmcveigh/cljs-time "0.5.2"] - [cider/cider-nrepl "0.21.0"]] + [com.andrewmcveigh/cljs-time "0.5.2"]] :dev-http {8080 "public"} :builds {:test {:target :node-test