Skip to content

Commit 3bc945f

Browse files
committed
ci: add publish-release workflow
1 parent cc5b389 commit 3bc945f

2 files changed

Lines changed: 81 additions & 1 deletion

File tree

Lines changed: 80 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,80 @@
1+
name: Publish Release
2+
3+
on:
4+
workflow_dispatch:
5+
inputs:
6+
vendor_version:
7+
type: string
8+
description: "Vendor Version (semver) for the release -- what will be visible."
9+
default: "1.0.0"
10+
required: true
11+
12+
env:
13+
DENO_VERSION: "v1.x"
14+
INPUT_VENDOR_VERSION: ${{ github.event.inputs.vendor_version || '1.0.0' }}
15+
16+
permissions:
17+
contents: write
18+
19+
jobs:
20+
create_release:
21+
name: Create release
22+
runs-on: ubuntu-latest
23+
outputs:
24+
version: ${{ env.INPUT_VENDOR_VERSION }}
25+
prerelease: ${{ steps.versioning.outputs.is-prerelease }}
26+
steps:
27+
- uses: actions/checkout@v4
28+
- name: Determine release version
29+
id: versioning
30+
uses: Fresa/trunk-based-release-versioning@v0
31+
32+
- name: Convert commit logs to JSON
33+
id: convert-commit-logs
34+
uses: mikefarah/yq@master
35+
with:
36+
cmd: yq ea -o=json 'select(. != null) | [.]' "$(echo "${{ steps.versioning.outputs.commit-logs-path }}" | sed "s|^${{ github.workspace }}/||")" | tee commit_logs.json
37+
38+
- name: Generate release notes
39+
id: release_notes
40+
uses: Fresa/release-notes-generator@v2
41+
with:
42+
version: ${{ env.INPUT_VENDOR_VERSION }}
43+
last_release_ref: ${{ steps.versioning.outputs.last-release-ref }}
44+
release_ref: ${{ steps.versioning.outputs.release-ref }}
45+
path_to_commits: ./commit_logs.json
46+
47+
- name: Create release
48+
uses: softprops/action-gh-release@v2
49+
with:
50+
tag_name: "v${{ env.INPUT_VENDOR_VERSION }}"
51+
name: "v${{ env.INPUT_VENDOR_VERSION }}"
52+
body: ${{ steps.release_notes.outputs.release_notes }}
53+
prerelease: ${{ steps.versioning.outputs.is-prerelease }}
54+
draft: false
55+
56+
release:
57+
name: "Release apps"
58+
runs-on: ubuntu-latest
59+
needs: create_release
60+
steps:
61+
- uses: actions/checkout@v4
62+
- name: Setup deno
63+
uses: denoland/setup-deno@v1
64+
with:
65+
deno-version: ${{ env.DENO_VERSION }}
66+
67+
- name: Update environement variable
68+
run: cp .env.example .env && ls -al
69+
70+
- name: Build release
71+
run: deno task build
72+
73+
- name: Upload build file
74+
uses: svenstaro/[email protected]
75+
with:
76+
repo_token: ${{ secrets.GITHUB_TOKEN }}
77+
tag: "v${{ env.INPUT_VENDOR_VERSION }}"
78+
file: dist/
79+
asset_name: docker-mailserver-webapi.zip
80+
prerelease: ${{ needs.create_release.outputs.prerelease }}

scripts/user-patches.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616
# https://docker-mailserver.github.io/docker-mailserver/edge/config/advanced/override-defaults/user-patches/
1717
#
1818

19-
CHANNEL="nightly"
19+
CHANNEL="stable"
2020
DMS_CONFIG="/tmp/docker-mailserver"
2121
SUPERVISOR_FILENAME="/etc/supervisor/conf.d/supervisor-webapi.conf"
2222

0 commit comments

Comments
 (0)