mirror of
https://github.com/iconoir-icons/iconoir
synced 2024-06-02 22:12:35 +02:00
ci: automatically create new releases with tags instead of each push to master
Resolves #111
This commit is contained in:
parent
0b6d2ff264
commit
5f6ef02585
6
.github/workflows/build.yaml
vendored
6
.github/workflows/build.yaml
vendored
|
@ -26,10 +26,6 @@ jobs:
|
||||||
version: 6.27.1
|
version: 6.27.1
|
||||||
run_install: true
|
run_install: true
|
||||||
- run: pnpm run build
|
- run: pnpm run build
|
||||||
- run: pnpm run prepublish
|
|
||||||
- uses: stefanzweifel/git-auto-commit-action@v4
|
- uses: stefanzweifel/git-auto-commit-action@v4
|
||||||
with:
|
with:
|
||||||
commit_message: Update build artifacts and release
|
commit_message: Update build artifacts
|
||||||
- run: pnpm -r publish --filter ./packages --access public
|
|
||||||
env:
|
|
||||||
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
|
|
||||||
|
|
38
.github/workflows/release.yaml
vendored
Normal file
38
.github/workflows/release.yaml
vendored
Normal file
|
@ -0,0 +1,38 @@
|
||||||
|
name: Release
|
||||||
|
|
||||||
|
on:
|
||||||
|
push:
|
||||||
|
tags:
|
||||||
|
- 'v*'
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
release:
|
||||||
|
name: Release
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v2
|
||||||
|
- uses: actions/cache@v2
|
||||||
|
with:
|
||||||
|
path: ~/.pnpm-store
|
||||||
|
key: ${{ runner.os }}-${{ hashFiles('**/pnpm-lock.yaml') }}
|
||||||
|
restore-keys: |
|
||||||
|
${{ runner.os }}-
|
||||||
|
- uses: actions/setup-node@v2
|
||||||
|
with:
|
||||||
|
node-version: '14'
|
||||||
|
registry-url: 'https://registry.npmjs.org'
|
||||||
|
- uses: pnpm/action-setup@v2.1.0
|
||||||
|
with:
|
||||||
|
version: 6.27.1
|
||||||
|
run_install: true
|
||||||
|
- run: pnpm run prepublish
|
||||||
|
env:
|
||||||
|
TAG_NAME: ${{ github.ref_name }}
|
||||||
|
- uses: stefanzweifel/git-auto-commit-action@v4
|
||||||
|
with:
|
||||||
|
commit_message: Release Version
|
||||||
|
tagging_message: ${{ github.ref_name }}
|
||||||
|
push_options: '--force'
|
||||||
|
- run: pnpm -r publish --filter ./packages --access public
|
||||||
|
env:
|
||||||
|
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
|
|
@ -1,20 +1,17 @@
|
||||||
import { execSync } from 'child_process';
|
|
||||||
import semver from 'semver';
|
import semver from 'semver';
|
||||||
import path from 'path';
|
import path from 'path';
|
||||||
import fs from 'fs';
|
import fs from 'fs';
|
||||||
|
|
||||||
const BASE_VERSION = '2.1.0';
|
|
||||||
const PACKAGE_BASE = '';
|
const PACKAGE_BASE = '';
|
||||||
|
|
||||||
function publishPackage(name) {
|
function publishPackage(name) {
|
||||||
console.info('Publishing %s', name);
|
console.info('Publishing %s', name);
|
||||||
|
|
||||||
const currentVersion =
|
const newVersion = semver.valid(semver.coerce(process.env.TAG_NAME));
|
||||||
execSync(`npm view ${name} version`).toString() || BASE_VERSION;
|
|
||||||
console.info('Current version is %s', currentVersion);
|
|
||||||
|
|
||||||
const newVersion = semver.inc(currentVersion, 'minor');
|
|
||||||
console.info('New version is %s', newVersion);
|
console.info('New version is %s', newVersion);
|
||||||
|
if (!newVersion) {
|
||||||
|
throw new Error(`Tag name ${process.env.TAG_NAME} is not valid.`);
|
||||||
|
}
|
||||||
|
|
||||||
const packageJsonPath = path.join('packages', name, 'package.json');
|
const packageJsonPath = path.join('packages', name, 'package.json');
|
||||||
const contents = JSON.parse(fs.readFileSync(packageJsonPath).toString());
|
const contents = JSON.parse(fs.readFileSync(packageJsonPath).toString());
|
||||||
|
|
|
@ -8,8 +8,6 @@ Iconoir is an open source library with 900+ SVG Icons. No premium icons, no emai
|
||||||
|
|
||||||
`iconoir-react-native` is an open source package that exports these icons as React Native components (`react-native-svg`) that can be used in all of your React Native projects.
|
`iconoir-react-native` is an open source package that exports these icons as React Native components (`react-native-svg`) that can be used in all of your React Native projects.
|
||||||
|
|
||||||
**Based on Iconoir Icons ```v4.4.0```.**
|
|
||||||
|
|
||||||
### Installation
|
### Installation
|
||||||
|
|
||||||
```
|
```
|
||||||
|
|
|
@ -8,8 +8,6 @@ Iconoir is an open source library with 900+ SVG Icons. No premium icons, no emai
|
||||||
|
|
||||||
`iconoir-react` is an open source package that exports these icons as React.js components that can be used in all of your React projects.
|
`iconoir-react` is an open source package that exports these icons as React.js components that can be used in all of your React projects.
|
||||||
|
|
||||||
**Based on Iconoir Icons ```v4.4.0```.**
|
|
||||||
|
|
||||||
### Installation
|
### Installation
|
||||||
|
|
||||||
```
|
```
|
||||||
|
|
Loading…
Reference in a new issue