Skip to content
This repository has been archived by the owner on Mar 6, 2022. It is now read-only.

feat: dockerize repository and release package on ghcr.io #21

Merged
merged 13 commits into from
Dec 4, 2021

Conversation

0-vortex
Copy link
Contributor

@0-vortex 0-vortex commented Nov 11, 2021

What type of PR is this? (check all applicable)

  • ♻️ Refactor
  • ✨ Feature
  • 🐛 Bug Fix
  • 👷 Optimization
  • 📝 Documentation Update
  • 🔖 Release
  • 🚩 Other

Description

This PR:

  • adds the ability to run our semantic-release configuration from a docker container
  • adds the ability to run our semantic-release configuration from a GitHub action
  • enables usage of our release tooling and configuration without installing any more dependencies
  • simplifies the release workflow by removing almost all environment variables
  • configuration is now aware of existing Dockerfile and action.yml configuration
  • fixes the [skip ci] bug in alpha and beta pre-release branches
  • fixes the npm ci build-cache using Bahmutov action
  • adds better usage documentation and examples
  • adds license update function and git asset configuration
  • adds better changelog generation

Related Tickets & Documents

closes #11
closes #18
closes #24

Mobile & Desktop Screenshots/Recordings

Added tests?

  • 👍 yes
  • 🙅 no, because they aren't needed
  • 🙋 no, because I need help

Added to documentation?

  • 📜 readme
  • 📜 contributing.md
  • 📓 docs
  • 📕 storybook
  • 🙅 no documentation needed

[optional] Are there any post-deployment tasks we need to perform?

  • update maintainer docs
  • write a dev.to blog post
  • convince @mtfoley this action was designed for them

[optional] What gif best describes this PR or how it makes you feel?

BREAKING CHANGE: it is no longer required to install this package as part of your NPM tooling as
long as you are using GitHub Actions

closes open-sauced#18
@0-vortex 0-vortex marked this pull request as ready for review November 22, 2021 18:50
@0-vortex
Copy link
Contributor Author

@bdougie @mtfoley mind me pinging but you really need to see this, working on the docs right now but there are a lot of gaps due to rapid development, could really use your input!

@mtfoley
Copy link

mtfoley commented Nov 22, 2021

So I read that in the original issue #18 that the purpose behind doing this is creating docker images so contributors don't need to deal with dependencies directly. How would this change the workflow of cases where a contributor is adding dependencies to the project for features?

@0-vortex
Copy link
Contributor Author

0-vortex commented Nov 22, 2021

So I read that in the original issue #18 that the purpose behind doing this is creating docker images so contributors don't need to deal with dependencies directly. How would this change the workflow of cases where a contributor is adding dependencies to the project for features?

Other workflows would handle this - for now what this means is that with the simple squash flow enabled by your action we can simplify almost all releases with this workflow:

name: "Release"

on:
  push:
    branches:
      - main

jobs:
  release:
    runs-on: ubuntu-latest
    steps:
      - name: "☁️ checkout repository"
        uses: actions/checkout@v2
        with:
          fetch-depth: 0

      - name: "🚀 release"
        id: semantic-release
        uses: docker://ghcr.io/open-sauced/semantic-release-conventional-config:3.18.0
        env:
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

      - name: 'test'
        run: |
          echo ${{ env.RELEASE_TAG }}
          echo ${{ env.RELEASE_VERSION }}

No more local dependencies, commit convention handled by your action, BOOM 🍕

@0-vortex
Copy link
Contributor Author

The bug fixes and general semantic-release quirks can be seen in open-sauced-semantic-config-test and the performance improvements from running the release process in semantic-release-docker-test - both repositories I have created to be less spammy on open-sauced.

We really need alpha and beta branches enabled and documented, feel like they are so much easier to work with in the long run :D

BREAKING CHANGE: marketplace integration works now but it could use a rename and better
documentation

closes open-sauced#24
@0-vortex
Copy link
Contributor Author

0-vortex commented Dec 2, 2021

Linking this back to discussion#1319, is it worth doing this now, re-releasing at a later stage?

PS: It's ready for release except the pre-release branches!

@0-vortex 0-vortex merged commit 847456e into open-sauced:main Dec 4, 2021
@0-vortex 0-vortex deleted the 18-dockerize-release-process branch December 4, 2021 00:57
github-actions bot pushed a commit that referenced this pull request Dec 4, 2021
## [3.0.0](v2.1.0...v3.0.0) (2021-12-04)

### ⚠ BREAKING CHANGES

* it is no longer required to install this package as part of your NPM tooling as
long as you are using GitHub Actions
* marketplace integration works now but it needs a manual verification for every tag we want to list, the major tag updates being handled by another action when we edit the GitHub release

### Features

* dockerize repository and release package on ghcr.io ([#21](#21)) ([847456e](847456e)), closes [#18](#18) [#11](#11) [#24](#24) [#24](#24)
@github-actions
Copy link

github-actions bot commented Dec 4, 2021

🎉 This PR is included in version 3.0.0 🎉

The release is available on:

Your semantic-release bot 📦🚀

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Feature: man in the middle buggy setups Feature: dockerize repository Feature: auto-detect docker builds
2 participants