Skip to content
This repository was archived by the owner on Feb 4, 2024. It is now read-only.

Commit fe471bc

Browse files
committed
ci: Use semantic-release for release automation
Configure this repository to use semantic-release [1] to manage release generation. [1]: https://github.com/semantic-release/semantic-release
1 parent bb7c039 commit fe471bc

File tree

6 files changed

+6430
-0
lines changed

6 files changed

+6430
-0
lines changed

.github/workflows/release.yaml

Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
name: Release
2+
on:
3+
push:
4+
branches:
5+
- main
6+
7+
permissions:
8+
contents: read
9+
10+
jobs:
11+
release:
12+
name: Release
13+
runs-on: ubuntu-latest
14+
permissions:
15+
contents: write
16+
issues: write
17+
pull-requests: write
18+
steps:
19+
- name: Checkout
20+
uses: actions/checkout@v3
21+
with:
22+
fetch-depth: 0
23+
24+
- name: Setup Node.js
25+
uses: actions/setup-node@v3
26+
with:
27+
node-version: "lts/*"
28+
29+
- name: Install packages
30+
run: |
31+
sudo apt-get -y install pandoc htmldoc
32+
33+
- name: Install npm dependencies
34+
run: npm clean-install
35+
36+
- name: Release
37+
env:
38+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
39+
run: npx semantic-release

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,3 +4,4 @@
44
picocom.1
55
picocom.1.html
66
picocom.1.pdf
7+
node_modules/

.releaserc.yaml

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
repositoryUrl: https://github.com/picocom-ng/picocom
2+
branches:
3+
- main
4+
plugins:
5+
- - '@semantic-release/commit-analyzer'
6+
- preset: conventionalcommits
7+
- - '@semantic-release/release-notes-generator'
8+
- preset: conventionalcommits
9+
- - '@semantic-release/exec'
10+
- prepareCmd: bash ci/make-release-tarball.sh ${nextRelease.version}
11+
- - '@semantic-release/github'
12+
- assets:
13+
- path: release/*

ci/make-release-tarball.sh

Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
#!/bin/bash
2+
3+
set -e
4+
5+
version=$1
6+
ref="${2:-HEAD}"
7+
8+
if [[ -z ${version} ]]; then
9+
echo "ERROR: no version provided on command line" >&2
10+
exit 1
11+
fi
12+
13+
tmpdir=$(mktemp -d releaseXXXXXX)
14+
trap "rm -rf ${tmpdir}" EXIT
15+
16+
builddir="${tmpdir}/picocom-${version}"
17+
18+
echo "exporting release"
19+
git archive --prefix "picocom-${version}/" "$ref" | tar -C "$tmpdir" -xf -
20+
echo "VERSION=${version}" > "${builddir}/version.mk"
21+
22+
echo "building docs"
23+
make -C "${builddir}" doc
24+
25+
echo "building CONTRIBUTORS"
26+
cat > "${builddir}/CONTRIBUTORS" <<EOF
27+
The following people have contributed to the development of Picocom:
28+
29+
EOF
30+
git log --format=format:%an | sort -u >> "${builddir}/CONTRIBUTORS"
31+
32+
echo "building release tarball"
33+
mkdir -p release
34+
tar -C "$tmpdir" -cf "release/picocom-${version}.tar.gz" "picocom-${version}"
35+
36+
echo "tarball content:"
37+
tar -tf "release/picocom-${version}.tar.gz"
38+
39+
echo "exctracting pdf man page"
40+
tar --wildcards -C release -xf "release/picocom-${version}.tar.gz" --strip-components 1 "*/picocom.1.pdf" || :
41+
42+
echo "release files:"
43+
ls -l release

0 commit comments

Comments
 (0)