Skip to content

Commit

Permalink
Merge pull request #506 from pimalaya/nixpkgs-common
Browse files Browse the repository at this point in the history
Nix refactor
  • Loading branch information
soywod authored Nov 27, 2024
2 parents 924d3cf + 0917caa commit eb65464
Show file tree
Hide file tree
Showing 16 changed files with 413 additions and 357 deletions.
58 changes: 58 additions & 0 deletions .github/workflows/build-on-demand.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,58 @@
name: build-on-demand

on:
workflow_dispatch:
inputs:
target:
description: Target
required: true
type: choice
options:
- aarch64-apple-darwin
- aarch64-unknown-linux-musl
- armv6l-unknown-linux-musleabihf
- armv7l-unknown-linux-musleabihf
- i686-unknown-linux-musl
# FIXME
# - i686-w64-mingw32
- x86_64-apple-darwin
- x86_64-unknown-linux-musl
- x86_64-w64-mingw32
defaultFeatures:
description: Enable default cargo features
default: true
type: bool
features:
description: Cargo features (comma-separated)
type: string

jobs:
build-on-demand:
runs-on: ${{ inputs.target == "x86_64-apple-darwin" && "macos-13" || inputs.target == "aarch64-apple-darwin" && "macos-14" || "ubuntu-latest" }}
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Install Nix
uses: cachix/install-nix-action@v27
with:
# TODO: nix_path: nixpkgs=channel:nixos-unstable
nix_path: nixpkgs=https://github.com/soywod/nixpkgs/archive/master.tar.gz
enable_kvm: true
- name: Cache Nix store
uses: cachix/cachix-action@v15
with:
name: soywod
authToken: ${{ secrets.CACHIX_AUTH_TOKEN }}
extraPullNames: nix-community
- name: Build release
run: |
nix-build \
--arg crossPkgs 'import <nixpkgs> { crossSystem = { config = "${{ inputs.target }}"; isStatic = true; }; }' \
--arg fenix 'import (fetchTarball "https://github.com/soywod/fenix/archive/main.tar.gz") { }' \
--arg defaultFeatures ${{ inputs.defaultFeatures }} \
--argstr features ${{ inputs.features }}
- name: Upload release
uses: actions/upload-artifact@v4
with:
name: himalaya-${{ inputs.target }}
path: result/*
63 changes: 33 additions & 30 deletions .github/workflows/pre-release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -10,48 +10,51 @@ jobs:
fail-fast: false
matrix:
include:
- os: ubuntu-latest
host: x86_64-linux
target: x86_64-linux
- os: ubuntu-latest
host: x86_64-linux
target: aarch64-linux
- os: ubuntu-latest
host: x86_64-linux
target: x86_64-windows
- os: macos-13
host: x86_64-darwin
target: x86_64-darwin
- os: macos-14
host: aarch64-darwin
target: aarch64-darwin
- target: aarch64-darwin
os: macos-14
- target: aarch64-linux
os: ubuntu-latest
- target: armv6l-linux
os: ubuntu-latest
- target: armv7l-linux
os: ubuntu-latest
- target: i686-linux
os: ubuntu-latest
# FIXME
# - target: i686-windows
# os: ubuntu-latest
- target: x86_64-darwin
os: macos-13
- target: x86_64-linux
os: ubuntu-latest
- target: x86_64-windows
os: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Install Nix
uses: cachix/install-nix-action@v27
with:
nix_path: nixpkgs=channel:nixos-24.05
# TODO: nix_path: nixpkgs=channel:nixos-unstable
nix_path: nixpkgs=https://github.com/soywod/nixpkgs/archive/master.tar.gz
enable_kvm: true
extra_nix_config: "experimental-features = nix-command flakes"
extra_nix_config: experimental-features = nix-command flakes
- name: Cache Nix store
uses: cachix/cachix-action@v15
with:
name: soywod
authToken: '${{ secrets.CACHIX_AUTH_TOKEN }}'
authToken: ${{ secrets.CACHIX_AUTH_TOKEN }}
extraPullNames: nix-community
- name: Build release
run: |
nix build -L --expr "
(builtins.getFlake \"git+file://${PWD}?shallow=1&rev=$(git rev-parse HEAD)\")
.outputs.packages.${{ matrix.host }}.${{ matrix.target }}.overrideAttrs {
GIT_DESCRIBE = \"$(git describe --all --always --dirty)\";
}"
nix run -L .#${{ matrix.target }} -- --version
- name: Upload release artifacts
run: nix build .#cross-${{ matrix.target }}
- name: Upload release
uses: actions/upload-artifact@v4
with:
name: "himalaya.${{ matrix.target }}"
path: |
result/bin/himalaya*
result/bin/share
name: himalaya-${{ matrix.target }}
path: result/bin/himalaya*
- name: Upload share folder
uses: actions/upload-artifact@v4
if: ${{ matrix.target == 'x86_64-linux' }}
with:
name: share
path: result/share
54 changes: 27 additions & 27 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

11 changes: 5 additions & 6 deletions Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -21,11 +21,11 @@ default = [
"maildir",
#"notmuch",
"smtp",
#"sendmail",
"sendmail",
#"keyring",
#"oauth2",
"wizard",
#"pgp-commands",
"pgp-commands",
#"pgp-gpg",
#"pgp-native",
]
Expand All @@ -40,10 +40,9 @@ keyring = ["email-lib/keyring", "pimalaya-tui/keyring", "secret-lib/keyring"]
oauth2 = ["email-lib/oauth2", "pimalaya-tui/oauth2", "keyring"]
wizard = ["email-lib/autoconfig", "pimalaya-tui/wizard"]

pgp = []
pgp-commands = ["email-lib/pgp-commands", "mml-lib/pgp-commands", "pimalaya-tui/pgp-commands", "pgp"]
pgp-gpg = ["email-lib/pgp-gpg", "mml-lib/pgp-gpg", "pimalaya-tui/pgp-gpg", "pgp"]
pgp-native = ["email-lib/pgp-native", "mml-lib/pgp-native", "pimalaya-tui/pgp-native", "pgp"]
pgp-commands = ["email-lib/pgp-commands", "mml-lib/pgp-commands", "pimalaya-tui/pgp-commands"]
pgp-gpg = ["email-lib/pgp-gpg", "mml-lib/pgp-gpg", "pimalaya-tui/pgp-gpg"]
pgp-native = ["email-lib/pgp-native", "mml-lib/pgp-native", "pimalaya-tui/pgp-native"]

[build-dependencies]
git2 = { version = "0.19", default-features = false }
Expand Down
4 changes: 2 additions & 2 deletions assets/himalaya.desktop
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ Type=Application
Name=himalaya
DesktopName=Himalaya
GenericName=Mail Reader
Comment=Command-line interface for email management
Comment=CLI to manage emails
Terminal=true
Exec=himalaya %U
Categories=Application;Network
Expand All @@ -13,4 +13,4 @@ Actions=Compose

[Desktop Action Compose]
Name=Compose
Exec=himalaya write %U
Exec=himalaya message write %U
Loading

0 comments on commit eb65464

Please sign in to comment.