Skip to content

Commit 23b5380

Browse files
committed
feat: add joplin package
0 parents  commit 23b5380

6 files changed

Lines changed: 160 additions & 0 deletions

File tree

Lines changed: 55 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,55 @@
1+
name: Publish
2+
3+
on:
4+
push:
5+
branches: [main]
6+
schedule:
7+
- cron: '42 5 * * 2'
8+
workflow_dispatch:
9+
10+
permissions:
11+
contents: read
12+
packages: write
13+
attestations: write
14+
id-token: write
15+
16+
concurrency:
17+
group: publish-joplin-${{ github.ref }}
18+
cancel-in-progress: true
19+
20+
jobs:
21+
build:
22+
runs-on: ubuntu-latest
23+
steps:
24+
- uses: actions/checkout@11d5960a326750d5838078e36cf38b85af677262
25+
- uses: docker/setup-buildx-action@8d2750c68a42422c14e847fe6c8ac0403b4cbd6f
26+
- uses: docker/login-action@c94ce9fb468520275223c153574b00df6fe4bcc9
27+
with:
28+
registry: ghcr.io
29+
username: ${{ github.actor }}
30+
password: ${{ secrets.GITHUB_TOKEN }}
31+
- id: meta
32+
uses: docker/metadata-action@c299e40c65443455700f0fdfc63efafe5b349051
33+
with:
34+
images: ghcr.io/containerpak/joplin
35+
tags: |
36+
type=raw,value=main
37+
type=sha,prefix=sha-
38+
- id: build
39+
uses: docker/build-push-action@10e90e3645eae34f1e60eeb005ba3a3d33f178e8
40+
with:
41+
context: .
42+
file: Containerfile
43+
platforms: linux/amd64
44+
push: true
45+
pull: true
46+
tags: ${{ steps.meta.outputs.tags }}
47+
labels: ${{ steps.meta.outputs.labels }}
48+
cache-from: type=gha
49+
cache-to: type=gha,mode=max
50+
provenance: mode=max
51+
sbom: true
52+
- name: Verify package
53+
run: docker run --rm ghcr.io/containerpak/joplin:main sh -c 'test -x /usr/bin/joplin && test -f /usr/share/applications/joplin.desktop'
54+
- name: Publish summary
55+
run: echo "ghcr.io/containerpak/joplin@${{ steps.build.outputs.digest }}" >> "$GITHUB_STEP_SUMMARY"

Containerfile

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
FROM ubuntu:26.04 AS source
2+
3+
ADD --checksum=sha256:c9fc77c077f1c81c581324dfdd4cc785307ea3c5b5f19ceecf9ee20fa78ac792 https://github.com/laurent22/joplin/releases/download/v3.6.15/Joplin-3.6.15.deb /tmp/app.deb
4+
5+
FROM ghcr.io/containerpak/gtk3:main
6+
7+
LABEL org.opencontainers.image.source="https://github.com/Containerpak/joplin"
8+
9+
RUN --mount=type=bind,from=source,source=/tmp/app.deb,target=/run/app.deb \
10+
apt-get update && \
11+
apt-get install -y --no-install-recommends /run/app.deb && \
12+
cpak-clean-junk
13+
14+
COPY icon.png /usr/share/icons/hicolor/128x128/apps/joplin.png
15+
COPY joplin.desktop /usr/share/applications/joplin.desktop

README.md

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
# Joplin (cpak)
2+
3+
## Installation
4+
5+
```bash
6+
cpak install github.com/containerpak/joplin
7+
```
8+
9+
## Usage
10+
11+
Start it from the application menu or by running:
12+
13+
```bash
14+
cpak run github.com/containerpak/joplin joplin
15+
```

cpak.json

Lines changed: 67 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,67 @@
1+
{
2+
"$schema": "https://raw.githubusercontent.com/Containerpak/cpak/v2/schema/manifest-v2.json",
3+
"manifest_version": "2.0",
4+
"name": "Joplin",
5+
"description": "Write notes and synchronize them across your devices.",
6+
"version": "3.6.15",
7+
"image": "ghcr.io/containerpak/joplin:main",
8+
"binaries": [
9+
"/usr/bin/joplin"
10+
],
11+
"desktop_entries": [
12+
"/usr/share/applications/joplin.desktop"
13+
],
14+
"dependencies": [],
15+
"addons": [],
16+
"idle_time": 0,
17+
"override": {
18+
"socketX11": true,
19+
"socketWayland": true,
20+
"socketPulseAudio": false,
21+
"socketSessionBus": true,
22+
"socketSystemBus": false,
23+
"socketSshAgent": false,
24+
"socketCups": true,
25+
"socketGpgAgent": false,
26+
"socketAtSpiBus": true,
27+
"socketBluetooth": false,
28+
"deviceDri": true,
29+
"deviceKvm": false,
30+
"deviceShm": true,
31+
"deviceAlsa": false,
32+
"deviceVideo": false,
33+
"deviceFuse": false,
34+
"deviceTun": false,
35+
"deviceUsb": false,
36+
"deviceInput": false,
37+
"deviceTTY": false,
38+
"deviceAll": false,
39+
"notification": true,
40+
"openURI": true,
41+
"hostApplications": false,
42+
"hostActions": [],
43+
"filesystem": [
44+
{
45+
"path": "xdg-documents",
46+
"access": "read-write"
47+
},
48+
{
49+
"path": "xdg-download",
50+
"access": "read-write"
51+
},
52+
{
53+
"path": "xdg-pictures",
54+
"access": "read-write"
55+
}
56+
],
57+
"env": [],
58+
"network": true,
59+
"process": false,
60+
"userNamespaces": true,
61+
"memoryMaxMB": 0,
62+
"cpuQuota": 0,
63+
"pidsMax": 0,
64+
"asRoot": false,
65+
"allowedHostCommands": []
66+
}
67+
}

icon.png

4.64 KB
Loading

joplin.desktop

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
[Desktop Entry]
2+
Type=Application
3+
Name=Joplin
4+
Comment=Write notes and synchronize them across your devices.
5+
Exec=joplin %U
6+
Icon=joplin
7+
Terminal=false
8+
Categories=Office;Utility;

0 commit comments

Comments
 (0)