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

v0.0.81

v0.0.81 #115

Workflow file for this run

# Build binaries for macOS and Linux, publish Node.js packages, create release
name: build-publish-release
on:
push:
tags:
- 'v*.*.*'
jobs:
lint:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v2
- uses: Lastin/setup-rome@v0.5
with:
version: 11.0.0
- run: rome ci .
build-macos:
needs: [lint]
runs-on: macos-latest
steps:
- name: Checkout
uses: actions/checkout@v2
- name: Set version
run: echo "RELEASE_VERSION=${GITHUB_REF#refs/*/}" >> $GITHUB_ENV
- name: Setup
uses: actions/setup-node@v2
with:
node-version: '16.x'
- name: Package
run: |
npm ci
npm run build
npm run package:macos
- name: Create tarball
run: |
mv bin/macos/baselime baselime
tar -cvzf baselime-darwin-x64-"$RELEASE_VERSION".tar.gz baselime
- name: Upload tarball artifact
uses: actions/upload-artifact@v2
with:
name: bin-macos
path: baselime-darwin-x64-${{ env.RELEASE_VERSION }}.tar.gz
build-linux:
needs: [lint]
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v2
- name: Set version
run: echo "RELEASE_VERSION=${GITHUB_REF#refs/*/}" >> $GITHUB_ENV
- name: Setup
uses: actions/setup-node@v2
with:
node-version: '16.x'
- name: Package
run: |
npm ci
npm run build
npm run package:linux
- name: Create tarball
run: |
mv bin/linux/baselime baselime
tar -cvzf baselime-linux-x64-"$RELEASE_VERSION".tar.gz baselime
- name: Upload tarball artifact
uses: actions/upload-artifact@v2
with:
name: bin-linux
path: baselime-linux-x64-${{ env.RELEASE_VERSION }}.tar.gz
publish-node-packages:
needs: [lint]
runs-on: ubuntu-latest
permissions:
contents: read
packages: write
steps:
- name: Checkout
uses: actions/checkout@v2
- name: Setup
uses: actions/setup-node@v2
with:
node-version: '16.x'
registry-url: 'https://registry.npmjs.org'
- name: Build and publish to npm registry
continue-on-error: true
run: |
npm ci
npm run build
npm publish --access public
env:
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
- uses: actions/setup-node@v2
with:
node-version: '16.x'
registry-url: 'https://npm.pkg.github.com'
scope: "@baselime"
- run: echo "registry=https://npm.pkg.github.com/@baselime" >> .npmrc
- name: Publish to GitHub registry
continue-on-error: true
run: npm publish
env:
NODE_AUTH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
create-release:
needs: [build-macos, build-linux, publish-node-packages]
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v2
- name: Set version
run: echo "RELEASE_VERSION=${GITHUB_REF#refs/*/}" >> $GITHUB_ENV
- name: Set current date
run: |
echo "RELEASE_DATE=$(date +"%d %B %Y")" >> $GITHUB_ENV
- name: Download macos tarball
uses: actions/download-artifact@v2
with:
name: bin-macos
- name: Download linux tarball
uses: actions/download-artifact@v2
with:
name: bin-linux
- name: Get version from tag
id: tag_name
run: |
echo ::set-output name=current_version::${GITHUB_REF#refs/tags/v}
- name: Get Changelog Entry
id: changelog_reader
uses: mindsers/changelog-reader-action@v2
with:
validation_level: none
version: ${{ steps.tag_name.outputs.current_version }}
path: ./CHANGELOG.md
- name: Compute checksums
run: |
echo "## ${{ env.RELEASE_VERSION }} (${{ env.RELEASE_DATE }})" >> checksums.md
echo "${{ steps.changelog_reader.outputs.changes }}" >> checksums.md
echo "" >> checksums.md
echo "" >> checksums.md
sha256sum baselime-darwin-x64-${{ env.RELEASE_VERSION }}.tar.gz >> checksums.md
sha256sum baselime-linux-x64-${{ env.RELEASE_VERSION }}.tar.gz >> checksums.md
- name: Release
uses: softprops/action-gh-release@v1
with:
prerelease: false
body_path: checksums.md
files: |
LICENSE
baselime-darwin-x64-${{ env.RELEASE_VERSION }}.tar.gz
baselime-linux-x64-${{ env.RELEASE_VERSION }}.tar.gz
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
homebrew-release:
needs: [create-release]
runs-on: ubuntu-latest
steps:
- name: Extract version
id: extract-version
run: |
printf "::set-output name=%s::%s\n" tag-name "${GITHUB_REF#refs/tags/}"
- uses: mislav/bump-homebrew-formula-action@v2
if: "!contains(github.ref, '-')" # skip prereleases
with:
formula-name: baselime
formula-path: Formula/baselime.rb
homebrew-tap: Baselime/homebrew-tap
base-branch: master
download-url: https://github.com/baselime/cli/releases/download/${{ steps.extract-version.outputs.tag-name }}/baselime-darwin-x64-${{ steps.extract-version.outputs.tag-name }}.tar.gz
commit-message: |
v{{version}}
env:
COMMITTER_TOKEN: ${{ secrets.COMMITTER_TOKEN }}
publish-docker-image:
needs: [create-release]
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v2
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v2
- name: Login to DockerHub
uses: docker/login-action@v2
with:
username: ${{ secrets.DOCKER_USERNAME }}
password: ${{ secrets.DOCKER_PASSWORD }}
- name: Docker meta
id: meta
uses: docker/metadata-action@v4
with:
images: |
${{ secrets.DOCKER_ORG }}/${{ secrets.DOCKER_REPOSITORY }}
tags: |
type=semver,pattern={{version}}
type=semver,pattern={{major}}.{{minor}}
- name: Build and push Docker image
uses: docker/build-push-action@v3
with:
context: .
platforms: linux/amd64
tags: ${{ steps.meta.outputs.tags }}
push: true
- name: Update dockerhub readme
uses: peter-evans/dockerhub-description@v3
with:
username: ${{ secrets.DOCKER_USERNAME }}
password: ${{ secrets.DOCKER_PASSWORD }}
repository: baselime/baselime
notify-community:
needs: [publish-docker-image, homebrew-release]
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v2
- name: Get version from tag
id: tag_name
run: |
echo ::set-output name=current_version::${GITHUB_REF#refs/tags/v}
- name: Post to the community Slack channel
uses: slackapi/slack-github-action@v1.23.0
with:
channel-id: 'C04KT9JNRHS'
payload: |
{
"text": "[Release] Baselime CLI v${{ steps.tag_name.outputs.current_version }}",
"blocks": [
{
"type": "section",
"text": {
"type": "mrkdwn",
"text": "*[Release] Baselime CLI v${{ steps.tag_name.outputs.current_version }}*"
}
},
{
"type": "section",
"text": {
"type": "mrkdwn",
"text": "Update using:\n```Linux/MacOS: sudo baselime upgrade\nHomebrew: brew upgrade baselime\nnpm: npm i -g @ baselime/cli```"
}
},
{
"type": "section",
"text": {
"type": "mrkdwn",
"text": "<https://github.com/Baselime/cli/releases/tag/v${{ steps.tag_name.outputs.current_version }}|https://github.com/Baselime/cli/releases/tag/v${{ steps.tag_name.outputs.current_version }}>"
}
}
]
}
env:
SLACK_BOT_TOKEN: ${{ secrets.SLACK_BOT_TOKEN }}