diff --git a/.github/workflows/dev-build.yml b/.github/workflows/dev-build.yml deleted file mode 100644 index bd51116..0000000 --- a/.github/workflows/dev-build.yml +++ /dev/null @@ -1,31 +0,0 @@ -name: Node.js CI - -on: - push: - branches: [ master, transformation ] - pull_request: - branches: [ master ] - -jobs: - build: - runs-on: ubuntu-latest - strategy: - matrix: - node-version: [10.x, 12.x, 14.x] - - steps: - - uses: actions/checkout@v2 - - name: Use Node.js ${{ matrix.node-version }} - uses: actions/setup-node@v1 - with: - node-version: ${{ matrix.node-version }} - - run: npm install - - run: npm install -g --save-dev shadow-cljs - - run: shadow-cljs compile test - - run: shadow-cljs release app - - run: rm -rf target/npm-build - - run: mkdir target/npm-build - - run: cp mastodon-bot.js target/npm-build/ - - run: cp package.json target/npm-build/ - - run: cp README.md target/npm-build/ - - run: tar -cz -C target/npm-build -f target/npm-build.tgz . diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml new file mode 100644 index 0000000..ee282c3 --- /dev/null +++ b/.github/workflows/release.yml @@ -0,0 +1,74 @@ +name: release prod +on: + push: + tags: '[0-9]+.[0-9]+.[0-9]+' + +jobs: + test-matrix: + name: matrix test + 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 app + chmod a+x mastodon-bot.js + + - name: package release + run: | + mkdir -p target/npm-build + cp mastodon-bot.js 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 . + + - 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: true + + - name: Upload Release Asset + id: upload-release-asset + uses: actions/upload-release-asset@v1 + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + with: + upload_url: ${{ steps.create_release.outputs.upload_url }} + asset_path: ./mastodon-bot.js + asset_name: mastodon-bot.js + asset_content_type: application/json diff --git a/.github/workflows/test-pr.yml b/.github/workflows/test-pr.yml new file mode 100644 index 0000000..2233f70 --- /dev/null +++ b/.github/workflows/test-pr.yml @@ -0,0 +1,39 @@ +name: test PR + +on: + pull_request: + branches: [ master ] + +jobs: + test-matrix: + name: matrix test + 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 + run: npm install -g --save-dev shadow-cljs + run: shadow-cljs compile test diff --git a/README.md b/README.md index effafe1..07455c0 100644 --- a/README.md +++ b/README.md @@ -1,11 +1,17 @@ ### description +![Node.js CI](https://github.com/yogthos/mastodon-bot/workflows/Node.js%20CI/badge.svg) + the bot will post the timeline from the specified Twitter/Tumblr accounts and RSS feeds to Mastodon ### installation -1. install [Node.js](https://nodejs.org/en/) -2. run `npm install` to install Node modules +1. prerequisits +1.1 [Node.js](https://nodejs.org/en/) +1.2 npm +2. install with `sudo npm install mastodon-bot -g` +3. run with `mastodon-bot -h` + ### usage diff --git a/RELEASING.md b/RELEASING.md index 5909359..a427a09 100644 --- a/RELEASING.md +++ b/RELEASING.md @@ -5,6 +5,7 @@ shadow-cljs compile test shadow-cljs release app +chmod a+x mastodon-bot.js rm -rf target/npm-build mkdir target/npm-build cp mastodon-bot.js target/npm-build/ @@ -12,7 +13,7 @@ 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 --tag dev0 +npm publish ./target/npm-build.tgz --access public ``` ## prod release (should be done from master) @@ -29,6 +30,7 @@ git push && git push --tag shadow-cljs release app shadow-cljs release app +chmod a+x mastodon-bot.js rm -rf target/npm-build mkdir target/npm-build cp mastodon-bot.js target/npm-build/ @@ -36,7 +38,7 @@ 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 --tag [version] +npm publish ./target/npm-build.tgz --access public # Bump version vi shadow-cljs.edn diff --git a/package.json b/package.json index 8fce2f1..7cbb33d 100644 --- a/package.json +++ b/package.json @@ -2,7 +2,7 @@ "name": "mastodon-bot", "description": "Bot to publish twitter, tumblr or rss posts to an mastodon account.", "author": "Dmitri Sotnikov", - "version": "0.1.0-dev-0", + "version": "0.1.0-dev-1", "homepage": "https://github.com/yogthos/mastodon-bot", "repository": "https://github.com/yogthos/mastodon-bot", "license": "MIT", @@ -18,8 +18,8 @@ "shadow-cljs": "^2.8.37" }, "main": "mastodon-bot.js", - "scripts": { - "start": "node mastodon-bot.js" + "bin": { + "mastodon-bot": "./mastodon-bot.js" }, "keywords": [ "cljs",