Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
313 commits
Select commit Hold shift + click to select a range
4c6a287
Switch to using ATUIN_LOG instead of RUST_LOG (#642)
ellie Dec 16, 2022
d1e29cb
Bump base64 from 0.13.0 to 0.20.0 (#641)
dependabot[bot] Dec 18, 2022
dcbe84b
Bump debian from bullseye-20221024-slim to bullseye-20221205-slim (#638)
dependabot[bot] Dec 18, 2022
ed394af
Allow overriding filter and search modes from CLI (#635)
pdecat Dec 18, 2022
a5616ae
Rework `atuin init` (#652)
Sciencentistguy Dec 24, 2022
b01d9f8
Improve error message when $AUTIN_SESSION is not set. (#654)
Sciencentistguy Dec 27, 2022
5821893
chore(#621): Exit atuin when pressing down arrow on most recent entry…
baprx Jan 10, 2023
62f0018
docs: Remove human short flag from docs, duplicate of help -h (#663)
baprx Jan 11, 2023
028f404
docs: Fix typo in zh-CN/README.md (#666)
yolo2h Jan 15, 2023
a8ed8f1
Update contributors.rs
ellie Jan 24, 2023
893a395
feat(history): Add new flag to allow custom output format (#662)
baprx Jan 26, 2023
4aa2011
Fix CI build badge (#683)
s1ck Feb 5, 2023
3abc96f
Try to make clippy happy 🥺 (#686)
ellie Feb 6, 2023
5611bc5
display mnemonic key (#694)
conradludgate Feb 6, 2023
6ae2abf
Remove whitespace in template client config.tom (#697)
evanpurkhiser Feb 7, 2023
5d6aff3
Fix missing `-` in key-binding.md (#698)
evanpurkhiser Feb 7, 2023
ffca029
Bump lukemathwalker/cargo-chef (#681)
dependabot[bot] Feb 7, 2023
936e51e
Update README.md (#704)
ellie Feb 10, 2023
ec24437
Bump fs-err from 2.8.1 to 2.9.0 (#604)
dependabot[bot] Feb 10, 2023
0acdb99
axum6 with typesafe state (#674)
conradludgate Feb 10, 2023
a22ff76
Bump debian from bullseye-20221205-slim to bullseye-20230208-slim (#701)
dependabot[bot] Feb 10, 2023
edda1b7
crossterm support (#331)
conradludgate Feb 10, 2023
2672f78
make update_needed check lazy (#706)
ellie Feb 10, 2023
deb7c19
stats (#707)
conradludgate Feb 10, 2023
dbbc904
Bump tokio from 1.21.2 to 1.25.0 (#679)
dependabot[bot] Feb 10, 2023
2d62499
Bump bumpalo from 3.11.0 to 3.12.0 (#668)
dependabot[bot] Feb 10, 2023
78b5466
docs(README): add static activity graph example (#680)
eripa Feb 10, 2023
2cec7ba
Allow using existing key file on login (#688)
trygveaa Feb 10, 2023
ae2124a
Make the install script more robust (#692)
frukto Feb 10, 2023
5cb4377
Add `history_filter` cfg to exclude commands from history (#515) (#716)
jbaiter Feb 14, 2023
1f7d3a3
Check before unwrapping in stats (#717)
ellie Feb 14, 2023
7e7dd63
fish: Fix `atuin init` for the fish shell (#699)
hunger Feb 14, 2023
dcfad9a
Add support for generic database in AppState (#711)
ekroon Feb 15, 2023
b2a0986
Add nix files and install instructions (#477)
Sciencentistguy Feb 15, 2023
c5f96ad
Bump lukemathwalker/cargo-chef (#715)
dependabot[bot] Feb 15, 2023
3fdd4f4
Remove shortcut numbers (#708)
ellie Feb 15, 2023
5f2db5b
Revert "Remove shortcut numbers (#708)" (#724)
ellie Feb 24, 2023
c558da5
Add fancy web docs (#725)
ellie Feb 25, 2023
7ed0df4
Fix website build
ellie Feb 25, 2023
89d3e02
I think the link checker gets it wrong sometimes
ellie Feb 25, 2023
e660a4d
More fixes :)
ellie Feb 25, 2023
8a2fa44
Docs index page
ellie Feb 26, 2023
fe5f728
Release v13 (#727)
ellie Feb 26, 2023
1ee66b5
Enable RUST_BACKTRACE for docker builds (#729)
ellie Feb 26, 2023
79a2053
Revert "Re-enable arm docker builds (#616)" (#730)
ellie Feb 26, 2023
ff4606b
Fix editURL for docs (#732)
kejadlen Feb 27, 2023
df9b3b0
Fix link to self-hosting (#731)
kejadlen Feb 27, 2023
f3bc646
[docs] fix some links between config and commands (#733)
Carthaca Feb 27, 2023
b80f91c
Disable 2 tests that shouldn't run in release mode (#736)
cyqsimon Feb 27, 2023
fe67dbb
fix registration (#740)
conradludgate Feb 28, 2023
e4fde80
Patch release v13.0.1 (#741)
ellie Feb 28, 2023
b40383f
Add Hachyderm links (#742)
ellie Feb 28, 2023
3e90031
Add verification
ellie Feb 28, 2023
d46e3ad
Add hachyderm to home
ellie Feb 28, 2023
55d8b36
Update flake.lock to Rust 1.67 (#749)
arcuru Mar 1, 2023
e6ff051
nix: add flake-compat (#743)
0x4A6F Mar 1, 2023
a033890
Fix race condition in directory tests (#748)
cyqsimon Mar 2, 2023
63c5721
Rework Bash import (#747)
cyqsimon Mar 2, 2023
9e05d74
docs(README): fix activity graph link (#753)
notjedi Mar 2, 2023
2438803
Show preview of selected command (#643)
pdecat Mar 5, 2023
3eb50a8
Up arrow filter_mode setting default to global filter mode (#758)
ellie Mar 5, 2023
2e79e73
feat: add common default keybindings (#719)
stevenxxiu Mar 5, 2023
df16a03
Bump debian from bullseye-20230208-slim to bullseye-20230227-slim (#744)
dependabot[bot] Mar 5, 2023
e9c5e1d
Windows support (#754)
YummyOreo Mar 5, 2023
ca5bbea
fix(client): always read session_path from settings (#757)
lukekarrys Mar 6, 2023
b978f9a
Add register notification webhook (#764)
ellie Mar 7, 2023
0f64cdc
Install CA certificates in docker image (#765)
ellie Mar 7, 2023
00f7312
Docker isn't interactive ofc (#766)
ellie Mar 7, 2023
afd1113
Minor documentation updates (#767)
onkelT2 Mar 8, 2023
b91d4f4
Fix before/after combined with limit (#770)
ellie Mar 8, 2023
991461f
Allow specifying fulltext as well as full-text (#771)
ellie Mar 9, 2023
1638cb5
fix new stats unique count (#772)
conradludgate Mar 9, 2023
0dc918e
add common prefixes and subcommands to stats (#773)
conradludgate Mar 13, 2023
0f59803
fix(installer): use case-insensitive comparison (#776)
aschey Mar 13, 2023
148730e
Add mailmap and update author information for [email protected] (#782)
networkException Mar 14, 2023
88deec3
Fixes a bug on windows (#780)
YummyOreo Mar 14, 2023
efd2230
Prefer PWD environment variable over cwd if available to better suppo…
pdecat Mar 14, 2023
529793f
fix: many wins were broken :memo: (#789)
nicoandmee Mar 19, 2023
edcd477
skim-demo (#695)
conradludgate Mar 19, 2023
dcd7774
Add history deletion (#791)
ellie Mar 20, 2023
26a1b93
fix: paste into terminal after switching modes (#793)
hhamud Mar 20, 2023
13514b6
Support old msgpack (#794)
ellie Mar 20, 2023
bc06d5f
Fix skim search (#795)
ellie Mar 21, 2023
378be6b
Allow changing search_mode during interactive search (#586)
iamkroot Mar 22, 2023
ba1d615
chore: remove tui vendoring (#804)
conradludgate Mar 23, 2023
d1169ae
Bump debian from bullseye-20230227-slim to bullseye-20230320-slim (#802)
dependabot[bot] Mar 23, 2023
79622cf
Delete all instances of a command (#797)
ellie Mar 24, 2023
3b77e11
Bump lukemathwalker/cargo-chef (#781)
dependabot[bot] Mar 24, 2023
03f7e55
Respect exit_mode setting when exiting with arrow down keypress (#807)
pdecat Mar 25, 2023
13ce5f7
feat: add an inline view mode (#648)
pdecat Mar 25, 2023
b911d17
Add musl build (#809)
InCogNiTo124 Mar 25, 2023
a7cb21a
feat: add *Nushell* support (#788)
stevenxxiu Mar 26, 2023
4325ec4
Update README.md
ellie Mar 26, 2023
bb7f00d
chore: use fork of skim (#803)
conradludgate Mar 26, 2023
954e20f
Bind keys in vi mode too (#811)
ellie Mar 26, 2023
c30b457
Account for user not yet having count cache (#812)
ellie Mar 26, 2023
c4e68cc
fixes (#813)
YummyOreo Mar 26, 2023
c64674d
Update CONTRIBUTING.md (#815)
ellie Mar 26, 2023
caf2ddf
client filtering done in query (#629)
jean-santos Mar 27, 2023
e9f9f9f
fix: record negative exit codes (#821)
stevenxxiu Mar 28, 2023
a41c2cc
Refactor/nu remove dep on sh (#823)
stevenxxiu Mar 28, 2023
3514ff2
Update CI action steps (#814)
InCogNiTo124 Mar 28, 2023
0f13904
Add more fields to `atuin search -f` formatting (#824)
takac Mar 28, 2023
f3a3f1c
install.sh - add endeavouros to archlinux detection (#827)
sftblw Mar 29, 2023
fa0a144
Add `--offset` flag to `atuin search` (#825)
takac Mar 29, 2023
ca5e58a
Update `atuin search` docs (#828)
takac Mar 29, 2023
0d16a11
Add `atuin status` (#830)
ellie Mar 30, 2023
662f2b8
fix: allow nix package to fetch dependencies from git (#832)
arcuru Mar 31, 2023
3552c7e
feat: add github action to test the nix builds (#833)
arcuru Mar 31, 2023
a515b06
Vendor ratatui temporarily (#835)
ellie Mar 31, 2023
4e4fdb9
Release Atuin v14 (#836)
ellie Apr 1, 2023
f2a4968
Clarify in docs
ellie Apr 1, 2023
4005447
Fix deleting history that doesn't exist yet (#844)
ellie Apr 5, 2023
6671f72
Updated client config docs (#839)
cyqsimon Apr 5, 2023
188117d
Handle empty lines when importing from Bash (#845)
cyqsimon Apr 5, 2023
b85b603
update `str substring` usage to use range parameter (#840)
WindSoilder Apr 5, 2023
a72bf07
Fix --delete description (#853)
SuperSandro2000 Apr 7, 2023
04044c4
Use XDG data directory for fish import (#851)
ijanos Apr 8, 2023
bca1e64
Add some emacs movement keys (#857)
majutsushi Apr 9, 2023
e0c4ec5
Atuin stats with day, month, week and year filter (#858)
bahdotsh Apr 10, 2023
e149a0a
Add `--reverse` to `atuin search` (#862)
takac Apr 11, 2023
301296f
Add additional detail to search documentation (#860)
briankung Apr 11, 2023
03dd3dd
Switch to uuidv7 (#864)
ellie Apr 11, 2023
c05d285
Workspace reorder (#868)
utterstep Apr 14, 2023
64671a1
Improve error message for issue #850. (#876)
postmath Apr 14, 2023
d5515f5
Avoid accidentally deleting all history, but allow it if intended (#878)
ellie Apr 15, 2023
512a6bd
Add footer (#879)
ellie Apr 15, 2023
d18e1b5
Make the homepage prettier (#880)
ellie Apr 15, 2023
7c07907
Release v14.0.1 (#883)
ellie Apr 16, 2023
83ed195
Fix release workflow (#885)
ellie Apr 16, 2023
678323b
Add workflow dispatch for release (#888)
ellie Apr 17, 2023
c7d89c1
chore: uuhhhhhh crypto lol (#805)
conradludgate Apr 17, 2023
7cc893d
Add keyboard shortcuts to the Config/Keybinding chapter. (#875)
maxim-uvarov Apr 17, 2023
281aa09
Re-added package name to workspace.package (#894)
bdavj Apr 18, 2023
cc5b167
Add package param to cargo deb (#895)
ellie Apr 18, 2023
0feee3d
Allow specifying tag to build for workflow_dispatch (#896)
ellie Apr 18, 2023
d5cc255
Add symlink (#897)
ellie Apr 18, 2023
beadc95
Upload tar before building deb (#898)
ellie Apr 19, 2023
c65e752
Copy license for cargo-deb (#901)
ellie Apr 20, 2023
50e2770
Fix fig plugin link (#924)
millette Apr 28, 2023
20845a5
fix broken pipe on history list (#927)
conradludgate May 2, 2023
b2fb5e6
docs: Fix broken links in README.md (#920)
xqm32 May 2, 2023
e222b59
add nu section to keybind docs (#881)
VuiMuich May 2, 2023
244a501
cwd_filter: much like history_filter, only it applies to cwd (#904)
kjetijor May 2, 2023
5a0e633
Add command flag for `inline_height` (#905)
VuiMuich May 2, 2023
a38fc6e
docs: fix "From source" `cd` command (#937)
rigrig May 6, 2023
fab5412
Correct typos in website (#946)
skx May 7, 2023
89eecc9
website: Fix participle "be ran" -> "be run" (#939)
nh2 May 8, 2023
1bdb470
Update README.md: Disable update check for offline mode (#960)
sashkab May 9, 2023
4a9a626
Bump debian from bullseye-20230320-slim to bullseye-20230502-slim (#930)
dependabot[bot] May 9, 2023
bf7432f
Patch bash history import regression (#970)
ellie May 10, 2023
b53ca35
Fix key regression introduced (#974)
ellie May 11, 2023
dc52341
Include bash preexec warning (#983)
ellie May 16, 2023
7b9dea7
feat: add delete account option (attempt 2) (#980)
yannickulrich May 16, 2023
7d5a82d
validate usernames on registration (#982)
conradludgate May 16, 2023
ca26383
Restructure account commands to account subcommand (#984)
ellie May 17, 2023
d2240e1
Allow server configured page size (#994)
ellie May 21, 2023
5b5e4ea
Input bar at the top if we are in inline mode (#866)
ellie May 21, 2023
d21b691
Add option to completely disable help row (#993)
happenslol May 22, 2023
6118da2
Fix typo in `config.toml` (#1006)
pmodin May 24, 2023
e695693
Make volume path absolute (#1009)
ivvvve May 27, 2023
9e3fa8b
Release v15.0.0 (#995)
ellie May 28, 2023
5dc189c
Add graceful shutdown on SIGTERM (#1014)
InCogNiTo124 May 30, 2023
f8585e6
Update Arch Linux links in README (#1016)
eclairevoyant May 30, 2023
f499ae8
fix: Adjust broken link to supported shells (#1013)
ap-1 May 30, 2023
3593f51
feat: do not allow empty passwords durring account creation (#1029)
YummyOreo Jun 6, 2023
49f0def
Bump lukemathwalker/cargo-chef (#1026)
dependabot[bot] Jun 8, 2023
a224a8e
Fix movement keys in inverted mode (#1035)
majutsushi Jun 8, 2023
dccdb2c
Make Ctrl-d behaviour match other tools (#1040)
majutsushi Jun 11, 2023
8655c93
refactor server to allow pluggable db and tracing (#1036)
conradludgate Jun 12, 2023
a6da534
add support to override hostname and username via env var (#1041)
lugoues Jun 12, 2023
b231b82
Bump uuid from 1.2.1 to 1.3.4 (#1046)
dependabot[bot] Jun 13, 2023
79f7b1d
Fix `--delete-it-all` and `--delete` commands (#913)
edeustua Jun 13, 2023
73b006f
Make requirement of PostgreSQL 14 explicit (#1048)
wzzrd Jun 13, 2023
dea6898
update release.yaml add RUSTFLAGS, add qemu-user, add QEMU_PREFIX bef…
Jun 13, 2023
d50ccce
Bump debian from bullseye-20230502-slim to bullseye-20230612-slim (#1…
dependabot[bot] Jun 13, 2023
ae1709d
Key values (#1038)
ellie Jun 14, 2023
0c75cfb
Add namespaces to kv store (#1052)
ellie Jun 15, 2023
4077c33
Builder interface for History objects (#933)
utterstep Jun 15, 2023
3c649b5
clean apt cache in Dockerfile (#932)
utterstep Jun 16, 2023
b8b57c8
remove rmp-serde (#1057)
conradludgate Jun 18, 2023
85c7339
fix: fixes unix specific impl of shutdown_signal (#1061)
YummyOreo Jun 19, 2023
9558fec
Add RecordIndex data structure (#1059)
ellie Jun 19, 2023
a75e516
remove decryption from api-client (#1063)
conradludgate Jun 21, 2023
395aa81
Revamp getting started guide (#1065)
ellie Jun 21, 2023
cb25aaa
Redirect old docs (#1066)
ellie Jun 21, 2023
190c468
Move key binding docs so they can be more easily found (#1067)
ellie Jun 21, 2023
1a63649
More redirects
ellie Jun 21, 2023
6c53242
record encryption (#1058)
conradludgate Jun 26, 2023
0ca72ee
Update `nu` section in `key-bindings.md` - `set-env` -> `let-env` (#1…
eopb Jun 26, 2023
ef88444
Update key-binding.md
ellie Jun 27, 2023
eb5e1c2
update nushell env update syntax (#1080)
sophiajt Jun 30, 2023
8c94d79
fix key encodings again (#1089)
conradludgate Jul 8, 2023
a6c4f2c
Update config.toml path default comments (#1092)
simon-b Jul 8, 2023
6c6f5f8
Update docusaurus.config.js
ellie Jul 9, 2023
998bd5b
fix for zsh no-unset environments (#921)
ds-cbo Jul 10, 2023
58d53a6
atuin crypto blog post (#1079)
conradludgate Jul 11, 2023
491433a
Add OG image (#1097)
ellie Jul 11, 2023
db83d95
write some key tests (#1095)
conradludgate Jul 14, 2023
abccab0
Bump regex from 1.7.2 to 1.9.1 (#1094)
dependabot[bot] Jul 14, 2023
3d4302d
Bump semver from 5.7.1 to 5.7.2 in /docs (#1100)
dependabot[bot] Jul 14, 2023
97e24d0
Add new sync (#1093)
ellie Jul 14, 2023
5786155
Add total history count to the index API (#1102)
ellie Jul 14, 2023
5d26d3f
Delete the count cache row when a user is deleted (#1103)
ellie Jul 14, 2023
465faca
Add workspace mode, enable if in git repo (#1053)
ellie Jul 14, 2023
f3e7075
Unvendor ratatui (#1101)
ellie Jul 17, 2023
a0f95ad
skim: fix filtering aggregates (#1114)
conradludgate Jul 24, 2023
79edc4c
Serve docusaurus on /docs/ (#1117)
ellie Jul 26, 2023
c96ba31
Try adjusting docs root (#1118)
ellie Jul 26, 2023
9ca26e5
Remove vercel config (#1119)
ellie Jul 26, 2023
a184afe
Tidy up docs (#1120)
ellie Jul 26, 2023
c0e8575
Bump colored from 2.0.0 to 2.0.4 (#1110)
dependabot[bot] Jul 27, 2023
0a41a9c
Bump lukemathwalker/cargo-chef (#1109)
dependabot[bot] Jul 27, 2023
26d42f8
Bump debian from bullseye-20230612-slim to bullseye-20230703-slim (#1…
dependabot[bot] Jul 27, 2023
d151f8f
Bump serde_json from 1.0.86 to 1.0.99 (#1075)
dependabot[bot] Jul 27, 2023
f22c137
Bump indicatif from 0.17.3 to 0.17.5 (#1050)
dependabot[bot] Jul 27, 2023
67b7452
Bump h2 from 0.3.14 to 0.3.17 (#873)
dependabot[bot] Jul 27, 2023
9c7501b
Bump config from 0.13.2 to 0.13.3 (#646)
dependabot[bot] Jul 27, 2023
c044995
use Ctrl-n instead of Alt-n on macOS (#1106)
zygous Jul 27, 2023
c10ba68
some simple server tests (#1096)
conradludgate Jul 27, 2023
4d1e6bc
Disable server tests in the nix build (#1123)
arcuru Jul 28, 2023
5a457d6
Drop default sync frequency to 10m (#1130)
ellie Jul 28, 2023
1fb7caa
Move all references to the old repo (#1132)
ellie Jul 30, 2023
43afb2d
Add self hosted runner (#1133)
ellie Jul 30, 2023
2a41768
Split integration and unit tests, use runner for unit (#1134)
ellie Jul 31, 2023
73da976
fix(server): Teapot is a cup of coffee (#1137)
LeoniePhiline Jul 31, 2023
8b05b15
fix: nushell empty hooks (#1138)
LeoniePhiline Jul 31, 2023
d7f8929
Add support for `max_preview_height` setting (#1088)
RichardDRJ Jul 31, 2023
a9a1d0d
fix(docs): List all presently documented commands (#1140)
LeoniePhiline Aug 1, 2023
1013246
Bump futures-util from 0.3.24 to 0.3.28 (#1129)
dependabot[bot] Aug 1, 2023
af14366
encode paseto payloads as json (#1146)
conradludgate Aug 2, 2023
2b1d39e
fix(docs): Correct command overview paths (#1145)
LeoniePhiline Aug 2, 2023
0d5332a
Prepare release v16.0.0 (#1143)
ellie Aug 7, 2023
613218f
Fix client-only builds (#1155)
ellie Aug 7, 2023
8080a17
Update(docs) Add `workspace` to config.toml and config.md (#1157)
thePanz Aug 9, 2023
5fd49d4
Bump lukemathwalker/cargo-chef (#1154)
dependabot[bot] Aug 9, 2023
925bf0e
Fix index tail leak (#1159)
ellie Aug 9, 2023
b207d0d
Include revision in status (#1166)
ellie Aug 14, 2023
b48de9b
Run test build for client-only feature set (#1167)
tobiasge Aug 14, 2023
f3e9f27
Fix nix build (#1171)
ellie Aug 14, 2023
cd6c44c
Update to ratatui 0.22 (#1168)
ellie Aug 14, 2023
e356ffa
Remove terminal mode switching (#1170)
ellie Aug 14, 2023
72c6b17
Only setup shell plugin if it's not already there (#1178)
ellie Aug 16, 2023
243557c
docs: update `workspace` config key to `workspaces` (#1174)
tombh Aug 17, 2023
85177a4
Bump debian from bullseye-20230703-slim to bullseye-20230814-slim (#1…
dependabot[bot] Aug 17, 2023
0a3680f
Fix keybinding link in README (#1173)
edwardloveall Aug 17, 2023
fbbe24d
fix(ubuntu/arm*): detect non amd64 ubuntu and handle (#1131)
jinnko Aug 17, 2023
69a772d
Add kv map builder and list function (#1179)
ellie Aug 18, 2023
aa8e5f5
Update dependencies (#1181)
conradludgate Aug 18, 2023
73bd801
Automatically filter out secrets (#1182)
ellie Aug 19, 2023
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions .github/dependabot.yml
Original file line number Diff line number Diff line change
Expand Up @@ -9,3 +9,7 @@ updates:
directory: "/" # Location of package manifests
schedule:
interval: "daily"
- package-ecosystem: "docker" # See documentation for possible values
directory: "/" # Location of package manifests
schedule:
interval: "daily"
13 changes: 7 additions & 6 deletions .github/workflows/docker.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -17,16 +17,16 @@ jobs:
steps:

- name: Check Out Repo
uses: actions/checkout@v2
uses: actions/checkout@v3

- name: Set up QEMU
uses: docker/setup-qemu-action@v2

- name: Docker meta
id: meta
uses: docker/metadata-action@v3
uses: docker/metadata-action@v4
with:
images: ghcr.io/${{ github.repository_owner }}/atuin
images: ghcr.io/${{ github.repository }}
tags: |
type=ref,event=pr
type=ref,event=branch
Expand All @@ -35,18 +35,18 @@ jobs:

- name: Set up Docker Buildx
id: buildx
uses: docker/setup-buildx-action@v1
uses: docker/setup-buildx-action@v2

- name: Login to Docker Hub
uses: docker/login-action@v1
uses: docker/login-action@v2
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}

- name: Build and push
id: docker_build
uses: docker/build-push-action@v2
uses: docker/build-push-action@v4
with:
context: ./
file: ./Dockerfile
Expand All @@ -57,6 +57,7 @@ jobs:
platforms: linux/amd64 #,linux/arm64
cache-from: type=gha
cache-to: type=gha,mode=max
build-args: RUST_BACKTRACE=1

- name: Image digest
run: echo ${{ steps.docker_build.outputs.digest }}
30 changes: 30 additions & 0 deletions .github/workflows/nix.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
# Verify the Nix build is working
# Failures will usually occur due to an out of date Rust version
# That can be updated to the latest version in nixpkgs-unstable with `nix flake update`
name: Nix
on:
push:
branches: [ main ]
pull_request:
branches: [ main ]

jobs:
check:
runs-on: ubuntu-latest

steps:
- uses: actions/[email protected]
- uses: cachix/install-nix-action@v20

- name: Run nix flake check
run: nix flake check --print-build-logs

build-test:
runs-on: ubuntu-latest

steps:
- uses: actions/[email protected]
- uses: cachix/install-nix-action@v20

- name: Run nix build
run: nix build --print-build-logs
90 changes: 57 additions & 33 deletions .github/workflows/release.yaml
Original file line number Diff line number Diff line change
@@ -1,11 +1,16 @@
name: Release


env:
MIN_SUPPORTED_RUST_VERSION: "1.51.0"
CICD_INTERMEDIATES_DIR: "_cicd-intermediates"

on:
workflow_dispatch:
inputs:
tag:
description: 'Tag to build release binaries for'
required: true
type: string
push:
tags:
- "v*"
Expand All @@ -21,33 +26,51 @@ jobs:
fail-fast: false
matrix:
job:
- { os: ubuntu-18.04 , target: x86_64-unknown-linux-gnu }
- { os: macos-10.15 , target: x86_64-apple-darwin }
- { os: ubuntu-20.04 , target: x86_64-unknown-linux-musl }
- { os: ubuntu-20.04 , target: x86_64-unknown-linux-gnu }
- { os: ubuntu-20.04 , target: aarch64-unknown-linux-gnu }
- { os: macos-12 , target: x86_64-apple-darwin }
- { os: self-hosted , target: aarch64-apple-darwin }
steps:
- name: Check for release
id: is-release
shell: bash
run: |
unset IS_RELEASE ; if [[ $GITHUB_REF =~ ^refs/tags/v[0-9].* ]]; then IS_RELEASE='true' ; fi
echo "IS_RELEASE=${IS_RELEASE}" >> $GITHUB_OUTPUT

- name: Checkout source code
uses: actions/checkout@v2
if: steps.is-release.outputs.IS_RELEASE
uses: actions/checkout@v3

- name: Checkout source code
if: ${{ !steps.is-release.outputs.IS_RELEASE }}
uses: actions/checkout@v3
with:
ref: ${{ inputs.tag }}

- name: Install prerequisites
shell: bash
run: |
case ${{ matrix.job.target }} in
arm-unknown-linux-gnueabihf) sudo apt-get -y update ; sudo apt-get -y install gcc-arm-linux-gnueabihf ;;
aarch64-unknown-linux-gnu) sudo apt-get -y update ; sudo apt-get -y install gcc-aarch64-linux-gnu ;;
aarch64-unknown-linux-gnu) sudo apt-get -y update ; sudo apt-get -y install gcc-aarch64-linux-gnu qemu-user;;
x86_64-unknown-linux-musl) sudo apt-get -y update ; sudo apt-get -y install musl-tools ;;
esac

- name: Extract crate information
shell: bash
run: |
echo "PROJECT_NAME=$(sed -n 's/^name = "\(.*\)"/\1/p' Cargo.toml)" >> $GITHUB_ENV
echo "PROJECT_NAME=$(sed -n 's/^name = "\(.*\)"/\1/p' atuin/Cargo.toml)" >> $GITHUB_ENV
echo "PROJECT_VERSION=$(sed -n 's/^version = "\(.*\)"/\1/p' Cargo.toml | head -n1)" >> $GITHUB_ENV
echo "PROJECT_MAINTAINER=$(sed -n 's/^authors = \["\(.*\)"\]/\1/p' Cargo.toml)" >> $GITHUB_ENV
echo "PROJECT_HOMEPAGE=$(sed -n 's/^homepage = "\(.*\)"/\1/p' Cargo.toml)" >> $GITHUB_ENV

- name: Install Rust toolchain
uses: actions-rs/toolchain@v1
uses: dtolnay/rust-toolchain@master
with:
toolchain: stable
target: ${{ matrix.job.target }}
targets: ${{ matrix.job.target }}
override: true
profile: minimal # minimal component installation (ie, no documentation)

Expand All @@ -62,11 +85,11 @@ jobs:
rustc -V

- name: Build
uses: actions-rs/cargo@v1
with:
use-cross: ${{ matrix.job.use-cross }}
command: build
args: --locked --release --target=${{ matrix.job.target }}
run: |
case ${{ matrix.job.target }} in
aarch64-unknown-linux-gnu) export RUSTFLAGS="-C linker=aarch64-linux-gnu-gcc";;
esac;
cargo build --locked --release --target=${{ matrix.job.target }}

- name: Strip debug information from executable
id: strip
Expand All @@ -79,6 +102,7 @@ jobs:
esac;

# Figure out what strip tool to use if any
# musl builds use the default strip
STRIP="strip"
case ${{ matrix.job.target }} in
arm-unknown-linux-gnueabihf) STRIP="arm-linux-gnueabihf-strip" ;;
Expand All @@ -90,7 +114,7 @@ jobs:
BIN_DIR="${{ env.CICD_INTERMEDIATES_DIR }}/stripped-release-bin/"
mkdir -p "${BIN_DIR}"
BIN_NAME="${{ env.PROJECT_NAME }}${EXE_suffix}"
BIN_PATH="${BIN_DIR}/${BIN_NAME}"
BIN_PATH="${BIN_DIR}${BIN_NAME}"

# Copy the release build binary to the result location
cp "target/${{ matrix.job.target }}/release/${BIN_NAME}" "${BIN_DIR}"
Expand All @@ -101,8 +125,8 @@ jobs:
fi

# Let subsequent steps know where to find the (stripped) bin
echo ::set-output name=BIN_PATH::${BIN_PATH}
echo ::set-output name=BIN_NAME::${BIN_NAME}
echo "BIN_PATH=${BIN_PATH}" >> "$GITHUB_OUTPUT"
echo "BIN_NAME=${BIN_NAME}" >> "$GITHUB_OUTPUT"

- name: Create tarball
id: package
Expand All @@ -111,7 +135,7 @@ jobs:
PKG_suffix=".tar.gz" ; case ${{ matrix.job.target }} in *-pc-windows-*) PKG_suffix=".zip" ;; esac;
PKG_BASENAME=${PROJECT_NAME}-v${PROJECT_VERSION}-${{ matrix.job.target }}
PKG_NAME=${PKG_BASENAME}${PKG_suffix}
echo ::set-output name=PKG_NAME::${PKG_NAME}
echo "PKG_NAME=${PKG_NAME}" >> "$GITHUB_OUTPUT"

PKG_STAGING="${{ env.CICD_INTERMEDIATES_DIR }}/package"
ARCHIVE_DIR="${PKG_STAGING}/${PKG_BASENAME}/"
Expand All @@ -124,9 +148,14 @@ jobs:
# README, LICENSE and CHANGELOG files
cp "README.md" "LICENSE" "$ARCHIVE_DIR"

QEMU_PREFIX=""
case ${{ matrix.job.target }} in
aarch64-unknown-linux-gnu) QEMU_PREFIX="qemu-aarch64 -L /usr/aarch64-linux-gnu" ;;
esac;

# Shell completions
for sh in 'bash' 'fish' 'zsh'; do
"${{ steps.strip.outputs.BIN_PATH }}" gen-completions -s $sh -o "${ARCHIVE_DIR}/completions"
$QEMU_PREFIX "${{ steps.strip.outputs.BIN_PATH }}" gen-completions -s $sh -o "${ARCHIVE_DIR}/completions"
done

# base compressed package
Expand All @@ -138,15 +167,21 @@ jobs:
popd >/dev/null

# Let subsequent steps know where to find the compressed package
echo ::set-output name=PKG_PATH::"${PKG_STAGING}/${PKG_NAME}"
echo "PKG_PATH=${PKG_STAGING}/${PKG_NAME}" >> "$GITHUB_OUTPUT"

- name: "Artifact upload: tarball"
uses: actions/upload-artifact@master
with:
name: ${{ steps.package.outputs.PKG_NAME }}
path: ${{ steps.package.outputs.PKG_PATH }}

- name: Create Debian package
id: debian-package
shell: bash
if: startsWith(matrix.job.os, 'ubuntu')
run: |
cargo install cargo-deb
cargo deb
cargo deb -p atuin

case ${{ matrix.job.target }} in
aarch64-*-linux-*) DPKG_ARCH=arm64 ;;
Expand All @@ -160,14 +195,9 @@ jobs:
DPKG_PATH="target/debian/${PKG_BASENAME}.deb"
DPKG_PATH="target/debian/${DPKG_NAME}"

echo ::set-output name=DPKG_NAME::${DPKG_NAME}
echo ::set-output name=DPKG_PATH::${DPKG_PATH}
echo DPKG_NAME=${DPKG_NAME} >> $GITHUB_OUTPUT
echo DPKG_PATH=${DPKG_PATH} >> $GITHUB_OUTPUT

- name: "Artifact upload: tarball"
uses: actions/upload-artifact@master
with:
name: ${{ steps.package.outputs.PKG_NAME }}
path: ${{ steps.package.outputs.PKG_PATH }}

- name: "Artifact upload: Debian package"
uses: actions/upload-artifact@master
Expand All @@ -176,12 +206,6 @@ jobs:
name: ${{ steps.debian-package.outputs.DPKG_NAME }}
path: ${{ steps.debian-package.outputs.DPKG_PATH }}

- name: Check for release
id: is-release
shell: bash
run: |
unset IS_RELEASE ; if [[ $GITHUB_REF =~ ^refs/tags/v[0-9].* ]]; then IS_RELEASE='true' ; fi
echo ::set-output name=IS_RELEASE::${IS_RELEASE}

- name: Publish archives and packages
uses: softprops/action-gh-release@v1
Expand Down
Loading