Skip to content

Commit

Permalink
Merge pull request #183 from opossum-tool/feat-release-procedure
Browse files Browse the repository at this point in the history
Feat release procedure
  • Loading branch information
Hellgartner authored Jan 16, 2025
2 parents d221019 + 923e876 commit 4e5b862
Show file tree
Hide file tree
Showing 3 changed files with 83 additions and 0 deletions.
52 changes: 52 additions & 0 deletions .github/workflows/publish-release.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
# SPDX-FileCopyrightText: Meta Platforms, Inc. and its affiliates
# SPDX-FileCopyrightText: TNG Technology Consulting GmbH <https://www.tngtech.com>
#
# SPDX-License-Identifier: Apache-2.0

name: Publish release

on:
release:
types: [published]

jobs:
publish-release:
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
os: [ubuntu-latest, macos-latest, windows-latest]
python-version: ['3.13']
include:
- os: ubuntu-latest
asset-name: opossum-file-for-ubuntu
- os: macos-latest
asset-name: opossum-file-for-mac
- os: windows-latest
asset-name: opossum-file-for-windows.exe

steps:
- uses: actions/checkout@v4

- name: Install uv and set the python version
uses: astral-sh/setup-uv@v5
with:
python-version: ${{ matrix.python-version }}
enable-cache: true
cache-dependency-glob: "uv.lock"

- name: Install the project
run: uv sync --locked

- name: Run build script
run: uv run python build.py ${{ matrix.asset-name }}

- name: Upload release asset
uses: softprops/action-gh-release@v2
with:
files: dist/${{ matrix.asset-name }}

- name: Upload readme
uses: softprops/action-gh-release@v2
with:
files: README.md
20 changes: 20 additions & 0 deletions CONTRIBUTORS.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
<!--
SPDX-FileCopyrightText: TNG Technology Consulting GmbH <https://www.tngtech.com>
SPDX-License-Identifier: Apache-2.0
-->

# Contributors (sorted alphabetically)

- **[Adrian Braemer](https://github.com/abraemer)** (<[email protected]>)
- **[Alexander zur Bonsen](https://github.com/alexzurbonsen)**
- **[Benedikt Richter](https://github.com/benedikt-richter)** (<[email protected]>)
- **[Dominikus Hellgartner](https://github.com/Hellgartner)** (<[email protected]>)
- **[Jakob Schubert](https://github.com/JakobSchubert)**
- **[Max Huneshagen](https://github.com/MaxHun)**
- **[Maxim Stykow](https://github.com/mstykow)**
- **[Maximilian Huber](https://github.com/maxhbr)** (<[email protected]>)
- **[Meret Behrens](https://github.com/meretp)**
- **[Philipp Martens](https://github.com/PhilippMa)** (<[email protected]>)

[Contributors list on GitHub](https://github.com/opossum-tool/OpossumUI/contributors).
11 changes: 11 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ SPDX-License-Identifier: Apache-2.0
# opossum.lib.py

[![REUSE status](https://api.reuse.software/badge/git.fsfe.org/reuse/api)](https://api.reuse.software/info/git.fsfe.org/reuse/api)
[![GitHub release (latest by date)](https://img.shields.io/github/v/release/opossum-tool/opossum.lib.py)](https://github.com/opossum-tool/opossum.lib.py/releases/latest)
![Lint and test](https://github.com/opossum-tool/opossum.lib.py/actions/workflows/lint_and_run_tests.yml/badge.svg)
![build workflow](https://github.com/opossum-tool/opossum.lib.py/actions/workflows/build-and-e2e-test.yml/badge.svg)

Expand Down Expand Up @@ -92,3 +93,13 @@ uv run python build.py opossum-file
```

This will create a self-contained executable file `dist/opossum-file` (`dist/opossum-file.exe` on Windows).

# Creating a new release

Note: You will need the "maintain" role in order to create a new release.

1. Go to the [GitHub releases page](https://github.com/opossum-tool/opossum.lib.py/releases/new) and use the UI to create a new release.
2. The tag should have the format "opossum-file-$YEAR-$MONTH-$DAY" (in case of an Nth release on the same day "opossum-file-$YEAR-$MONTH-$DAY.N").
3. The title of the release equals the tag.
4. Click the button "Generate release notes" to get the description for the release. Then, remove all the contributions from @renovate which are just dependency upgrades.
5. Click "Publish release". This will trigger the CI/CD pipeline which will build the release for all three OSs and upload the artifacts to the release.

0 comments on commit 4e5b862

Please sign in to comment.