This repository has been archived by the owner on Sep 4, 2024. It is now read-only.
fix formatting #117
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# 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 }} |