Semantic release to npm and/or ghcr without any tooling

This page summarizes the projects mentioned and recommended in the original post on dev.to

Our great sponsors
  • SurveyJS - Open-Source JSON Form Builder to Create Dynamic Forms Right in Your App
  • WorkOS - The modern identity platform for B2B SaaS
  • InfluxDB - Power Real-Time Data Analytics at Scale
  • semantic-release-conventional-config

    Discontinued semantic-release shareable config to publish to npm and/or ghcr

  • Release to npm from ghcr container:

  • Puts Debuggerer

    Ruby library for improved puts debugging, automatically displaying bonus useful information such as source line number and source code.

  • name: "Release" on: push: branches: - main - alpha - beta - next - next-major jobs: docker: name: Build container runs-on: ubuntu-latest steps: - name: "☁️ checkout repository" uses: actions/checkout@v2 - name: "πŸ”§ setup buildx" uses: docker/setup-buildx-action@v1 - name: "πŸ”§ cache docker layers" uses: actions/cache@v2 with: path: /tmp/.buildx-cache key: ${{ runner.os }}-buildx-${{ github.sha }} restore-keys: | ${{ runner.os }}-buildx- - name: "πŸ”§ docker meta" id: meta uses: docker/metadata-action@v3 with: images: ${{ github.repository }} tags: latest - name: "πŸ“¦ docker build" uses: docker/build-push-action@v2 with: context: . tags: ${{ steps.meta.outputs.tags }} labels: ${{ steps.meta.outputs.labels }} outputs: type=docker,dest=/tmp/docker.tar push: false cache-from: type=gha, scope=${{ github.workflow }} cache-to: type=gha, scope=${{ github.workflow }} - name: "πŸ“‚ docker artifacts" uses: actions/upload-artifact@v2 with: name: docker path: /tmp/docker.tar release: environment: name: production url: https://github.com/${{ github.repository }}/releases/tag/${{ steps.semantic-release.outputs.release-tag }} name: Semantic release needs: - docker runs-on: ubuntu-latest steps: - name: "☁️ checkout repository" uses: actions/checkout@v2 with: fetch-depth: 0 - name: "πŸ”§ setup node" uses: actions/[email protected] with: node-version: 16 - name: "πŸ”§ install npm@latest" run: npm i -g npm@latest - name: "πŸ“¦ install dependencies" uses: bahmutov/npm-install@v1 - name: "πŸ“‚ download docker artifacts" uses: actions/download-artifact@v2 with: name: docker path: /tmp - name: "πŸ“¦ load tag" run: | docker load --input /tmp/docker.tar docker image ls -a - name: "πŸš€ release" id: semantic-release uses: open-sauced/[email protected] env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} cleanup: name: Cleanup actions needs: - release runs-on: ubuntu-latest steps: - name: "♻️ remove build artifacts" uses: geekyeggo/delete-artifact@v1 with: name: | docker

  • SurveyJS

    Open-Source JSON Form Builder to Create Dynamic Forms Right in Your App. With SurveyJS form UI libraries, you can build and style forms in a fully-integrated drag & drop form builder, render them in your JS app, and store form submission data in any backend, inc. PHP, ASP.NET Core, and Node.js.

    SurveyJS logo
  • semantic-release

    :package::rocket: Fully automated version management and package publishing

  • Here are all the semantic-release plugins and steps explained:

  • commit-analyzer

    :bulb: semantic-release plugin to analyze commits with conventional-changelog

  • @semantic-release/commit-analyzer - analyzes conventional commits deciding if they are bumping a patch, minor or major release tag

  • changelog

    :blue_book: semantic-release plugin to create or update a changelog file

  • @semantic-release/changelog - generates a fancy changelog using the repository name the workflow was run for as a title and cool emojis [example]

  • semantic-release-replace-plugin

    A semantic-release plugin for replacing text in files with the current release version.

  • @google/semantic-release-replace-plugin - if the repository is deploying a containerised action, this updates action.yml with the recently released version tag

  • semantic-release-license

    Automatically update your license copyright date with every new release.

  • semantic-release-license - if the repository has a LICENSE* file, this updates the year

  • WorkOS

    The modern identity platform for B2B SaaS. The APIs are flexible and easy-to-use, supporting authentication, user identity, and complex enterprise features like SSO and SCIM provisioning.

    WorkOS logo
  • git

    :twisted_rightwards_arrows: semantic-release plugin to commit release assets to the project's git repository (by semantic-release)

  • @semantic-release/git - this creates the GitHub release commit [example]

  • github

    :octocat: semantic-release plugin to publish a GitHub release and comment on released Pull Requests/Issues (by semantic-release)

  • @semantic-release/github - generates GitHub release notes with added release channel links at the bottom [example]

  • semantic-release-docker

    semantic-release plugin to build and push docker images

  • @eclass/semantic-release-docker - if the repository has a Dockerfile, this takes care of releasing the container to ghcr.io [example]

  • exec

    :shell: semantic-release plugin to execute custom shell commands

  • @semantic-release/exec - used to set GitHub action environment variables when run as from docker container and GitHub action outputs when run as a marketplace action

  • execa

    Process execution for humans

  • execa - used to check the commit author and check for various settings in the repository using this action

  • npmlog

    The logger that npm uses

  • npmlog - used to log the setup process

  • setup-node

    Set up your GitHub Actions workflow with a specific version of node.js

  • actions/setup-node@v2.1.5 - we use it to set the node version to 16

  • upload-artifact

  • actions/upload-artifact@v2 - we use it to transport our artifacts in between jobs

  • download-artifact

  • actions/download-artifact@v2 - we use it to download our artifacts in between jobs

  • setup-buildx-action

    GitHub Action to set up Docker Buildx

  • docker/setup-buildx-action@v1 - we use it to setup the docker builder

  • metadata-action

    GitHub Action to extract metadata (tags, labels) from Git reference and GitHub events for Docker

  • docker/metadata-action@v3 - we use it to normalise most of our docker container values

  • build-push-action

    GitHub Action to build and push Docker images with Buildx

  • docker/build-push-action@v2 - we use this to build the container

  • npm-install

    GitHub Action for install npm dependencies with caching without any configuration

  • bahmutov/npm-install@v1 - lightning fast npm ci with built-in cache

  • delete-artifact

    A GitHub Action to deletes artifacts within the workflow run.

  • geekyeggo/delete-artifact@v1 - deletes produced artifacts

  • InfluxDB

    Power Real-Time Data Analytics at Scale. Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.

    InfluxDB logo
NOTE: The number of mentions on this list indicates mentions on common posts plus user suggested alternatives. Hence, a higher number means a more popular project.

Suggest a related project

Related posts