diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 4764f8b..ec15f4b 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -17,7 +17,7 @@ jobs: strategy: fail-fast: true matrix: - OS: ["debian-bullseye", "debian-bookworm"] + OS: ["debian-bullseye", "debian-bookworm", "fedora-40"] NODE_VERSION: ["18", "20", "22"] VARIANT: ["", "-nightly"] env: @@ -45,7 +45,7 @@ jobs: strategy: fail-fast: true matrix: - OS: ["debian-bullseye", "debian-bookworm"] + OS: ["debian-bullseye", "debian-bookworm", "fedora-40"] NODE_VERSION: ["18", "20", "22"] VARIANT: ["", "-nightly"] env: @@ -79,7 +79,7 @@ jobs: strategy: fail-fast: true matrix: - OS: ["debian-bullseye", "debian-bookworm"] + OS: ["debian-bullseye", "debian-bookworm", "fedora-40"] NODE_VERSION: ["18", "20", "22"] VARIANT: ["", "-nightly"] env: diff --git a/README.md b/README.md index c3f926d..8e83a10 100644 --- a/README.md +++ b/README.md @@ -24,6 +24,7 @@ Images are automatically updated on a daily basis. - [Supported tags and respective `Dockerfile` links](#supported-tags-and-respective-dockerfile-links) - [Debian v12 ("bookworm")](#debian-v12-bookworm) - [Debian v11 ("bullseye")](#debian-v11-bullseye) + - [Fedora v40](#fedora-v40) - [Legacy tags](#legacy-tags) - [E2E Testing](#e2e-testing) - [WebDriverIO](#webdriverio) @@ -43,7 +44,7 @@ Images are automatically updated on a daily basis. ### Debian v12 ("bookworm") > [!NOTE] -> These images (tags) should now be ready for both Tauri v1 and v2. But I'm testing them at the moment. +> These tags work with both **Tauri v1 and v2**. But I'm still testing them with Tauri v2 at the moment. - [`debian-bookworm-22`](https://github.com/ivangabriele/docker-tauri/blob/main/dockerfiles/debian-bookworm-22.Dockerfile) - Base: [`rust:1-bookworm`](https://hub.docker.com/_/rust) @@ -67,7 +68,7 @@ Images are automatically updated on a daily basis. ### Debian v11 ("bullseye") > [!IMPORTANT] -> These images (tags) only work with Tauri v1. See [tauri-apps/tauri#9039](https://github.com/tauri-apps/tauri/issues/9039). +> These tags only work with **Tauri v1**. See [tauri-apps/tauri#9039](https://github.com/tauri-apps/tauri/issues/9039). - [`debian-bullseye-22`](https://github.com/ivangabriele/docker-tauri/blob/main/dockerfiles/debian-bullseye-22.Dockerfile) - Base: [`rust:1-bullseye`](https://hub.docker.com/_/rust) @@ -88,6 +89,30 @@ Images are automatically updated on a daily basis. - Base: [`rust:1-bullseye`](https://hub.docker.com/_/rust) - Debian v11 ("bullseye") + Rust v1 (nightly) + Node v18 +### Fedora v40 + +> [!NOTE] +> These tags only work with **Tauri v2**. But I'm still testing them at the moment. + +- [`fedora-40`](https://github.com/ivangabriele/docker-tauri/blob/main/dockerfiles/fedora-40.Dockerfile) + - Base: [`fedora:40`](https://hub.docker.com/_/fedora) + - Debian v12 ("bookworm") + Rust v1 + Node v22 +- [`fedora-40-nightly`](https://github.com/ivangabriele/docker-tauri/blob/main/dockerfiles/fedora-40-nightly.Dockerfile) + - Base: [`fedora:40`](https://hub.docker.com/_/fedora) + - Debian v12 ("bookworm") + Rust v1 (nightly) + Node v22 +- [`fedora-40`](https://github.com/ivangabriele/docker-tauri/blob/main/dockerfiles/fedora-40.Dockerfile) + - Base: [`fedora:40`](https://hub.docker.com/_/fedora) + - Debian v12 ("bookworm") + Rust v1 + Node v20 +- [`fedora-40-nightly`](https://github.com/ivangabriele/docker-tauri/blob/main/dockerfiles/fedora-40-nightly.Dockerfile) + - Base: [`fedora:40`](https://hub.docker.com/_/fedora) + - Debian v12 ("bookworm") + Rust v1 (nightly) + Node v20 +- [`fedora-40`](https://github.com/ivangabriele/docker-tauri/blob/main/dockerfiles/fedora-40.Dockerfile) + - Base: [`fedora:40`](https://hub.docker.com/_/fedora) + - Debian v12 ("bookworm") + Rust v1 + Node v18 +- [`fedora-40-nightly`](https://github.com/ivangabriele/docker-tauri/blob/main/dockerfiles/fedora-40-nightly.Dockerfile) + - Base: [`fedora:40`](https://hub.docker.com/_/fedora) + - Debian v12 ("bookworm") + Rust v1 (nightly) + Node v18 + ### Legacy tags These tags exist but their image is not updated anymore. diff --git a/dockerfiles/debian-bookworm-18-nightly.Dockerfile b/dockerfiles/debian-bookworm-18-nightly.Dockerfile index 6eddc3d..37fece1 100644 --- a/dockerfiles/debian-bookworm-18-nightly.Dockerfile +++ b/dockerfiles/debian-bookworm-18-nightly.Dockerfile @@ -1,5 +1,3 @@ -# Run `make build-debian-bookworm-18-nightly` to build this image - FROM rust:bookworm # Install base utils diff --git a/dockerfiles/debian-bookworm-18.Dockerfile b/dockerfiles/debian-bookworm-18.Dockerfile index 7c227a9..08efb9d 100644 --- a/dockerfiles/debian-bookworm-18.Dockerfile +++ b/dockerfiles/debian-bookworm-18.Dockerfile @@ -1,5 +1,3 @@ -# Run `make build-debian-bookworm-18` to build this image - FROM rust:bookworm # Install base utils diff --git a/dockerfiles/debian-bookworm-20-nightly.Dockerfile b/dockerfiles/debian-bookworm-20-nightly.Dockerfile index eb11592..5c2f8bf 100644 --- a/dockerfiles/debian-bookworm-20-nightly.Dockerfile +++ b/dockerfiles/debian-bookworm-20-nightly.Dockerfile @@ -1,5 +1,3 @@ -# Run `make build-debian-bookworm-18-nightly` to build this image - FROM rust:bookworm # Install base utils diff --git a/dockerfiles/debian-bookworm-20.Dockerfile b/dockerfiles/debian-bookworm-20.Dockerfile index fb8f401..5920989 100644 --- a/dockerfiles/debian-bookworm-20.Dockerfile +++ b/dockerfiles/debian-bookworm-20.Dockerfile @@ -1,5 +1,3 @@ -# Run `make build-debian-bookworm-18` to build this image - FROM rust:bookworm # Install base utils diff --git a/dockerfiles/debian-bookworm-22-nightly.Dockerfile b/dockerfiles/debian-bookworm-22-nightly.Dockerfile index 22732ce..cd03f08 100644 --- a/dockerfiles/debian-bookworm-22-nightly.Dockerfile +++ b/dockerfiles/debian-bookworm-22-nightly.Dockerfile @@ -1,5 +1,3 @@ -# Run `make build-debian-bookworm-18-nightly` to build this image - FROM rust:bookworm # Install base utils diff --git a/dockerfiles/debian-bookworm-22.Dockerfile b/dockerfiles/debian-bookworm-22.Dockerfile index 02b7329..a4b9014 100644 --- a/dockerfiles/debian-bookworm-22.Dockerfile +++ b/dockerfiles/debian-bookworm-22.Dockerfile @@ -1,5 +1,3 @@ -# Run `make build-debian-bookworm-18` to build this image - FROM rust:bookworm # Install base utils diff --git a/dockerfiles/debian-bullseye-18-nightly.Dockerfile b/dockerfiles/debian-bullseye-18-nightly.Dockerfile index b8bbfda..27a6cfb 100644 --- a/dockerfiles/debian-bullseye-18-nightly.Dockerfile +++ b/dockerfiles/debian-bullseye-18-nightly.Dockerfile @@ -1,5 +1,3 @@ -# Run `make build-debian-bullseye-18-nightly` to build this image - FROM rust:bullseye # Install base utils diff --git a/dockerfiles/debian-bullseye-18.Dockerfile b/dockerfiles/debian-bullseye-18.Dockerfile index f01c202..1ed0ef0 100644 --- a/dockerfiles/debian-bullseye-18.Dockerfile +++ b/dockerfiles/debian-bullseye-18.Dockerfile @@ -1,5 +1,3 @@ -# Run `make build-debian-bullseye-18` to build this image - FROM rust:bullseye # Install base utils diff --git a/dockerfiles/debian-bullseye-20-nightly.Dockerfile b/dockerfiles/debian-bullseye-20-nightly.Dockerfile index 3a85eea..85a51b8 100644 --- a/dockerfiles/debian-bullseye-20-nightly.Dockerfile +++ b/dockerfiles/debian-bullseye-20-nightly.Dockerfile @@ -1,5 +1,3 @@ -# Run `make build-debian-bullseye-18-nightly` to build this image - FROM rust:bullseye # Install base utils diff --git a/dockerfiles/debian-bullseye-20.Dockerfile b/dockerfiles/debian-bullseye-20.Dockerfile index e000d85..8c76ac1 100644 --- a/dockerfiles/debian-bullseye-20.Dockerfile +++ b/dockerfiles/debian-bullseye-20.Dockerfile @@ -1,5 +1,3 @@ -# Run `make build-debian-bullseye-18` to build this image - FROM rust:bullseye # Install base utils diff --git a/dockerfiles/debian-bullseye-22-nightly.Dockerfile b/dockerfiles/debian-bullseye-22-nightly.Dockerfile index 90bef19..eb4195f 100644 --- a/dockerfiles/debian-bullseye-22-nightly.Dockerfile +++ b/dockerfiles/debian-bullseye-22-nightly.Dockerfile @@ -1,5 +1,3 @@ -# Run `make build-debian-bullseye-18-nightly` to build this image - FROM rust:bullseye # Install base utils diff --git a/dockerfiles/debian-bullseye-22.Dockerfile b/dockerfiles/debian-bullseye-22.Dockerfile index bafe4fc..51d6ba8 100644 --- a/dockerfiles/debian-bullseye-22.Dockerfile +++ b/dockerfiles/debian-bullseye-22.Dockerfile @@ -1,5 +1,3 @@ -# Run `make build-debian-bullseye-18` to build this image - FROM rust:bullseye # Install base utils diff --git a/dockerfiles/fedora-37-18-nightly.Dockerfile b/dockerfiles/fedora-37-18-nightly.Dockerfile index b0cb1b6..63f38ea 100644 --- a/dockerfiles/fedora-37-18-nightly.Dockerfile +++ b/dockerfiles/fedora-37-18-nightly.Dockerfile @@ -1,5 +1,3 @@ -# Run `make build-fedora-37-18-nightly` to build this image - FROM fedora:37 # Install base utils diff --git a/dockerfiles/fedora-37-18.Dockerfile b/dockerfiles/fedora-37-18.Dockerfile index 1a0e48d..2056898 100644 --- a/dockerfiles/fedora-37-18.Dockerfile +++ b/dockerfiles/fedora-37-18.Dockerfile @@ -1,5 +1,3 @@ -# Run `make build-fedora-37-18` to build this image - FROM fedora:37 # Install base utils diff --git a/dockerfiles/fedora-37-20-nightly.Dockerfile b/dockerfiles/fedora-37-20-nightly.Dockerfile index 6e7af93..5b375a3 100644 --- a/dockerfiles/fedora-37-20-nightly.Dockerfile +++ b/dockerfiles/fedora-37-20-nightly.Dockerfile @@ -1,5 +1,3 @@ -# Run `make build-fedora-37-18-nightly` to build this image - FROM fedora:37 # Install base utils diff --git a/dockerfiles/fedora-37-20.Dockerfile b/dockerfiles/fedora-37-20.Dockerfile index 8323512..956878c 100644 --- a/dockerfiles/fedora-37-20.Dockerfile +++ b/dockerfiles/fedora-37-20.Dockerfile @@ -1,5 +1,3 @@ -# Run `make build-fedora-37-18` to build this image - FROM fedora:37 # Install base utils diff --git a/dockerfiles/fedora-40-20-nightly.Dockerfile b/dockerfiles/fedora-40-20-nightly.Dockerfile new file mode 100644 index 0000000..0b57c6c --- /dev/null +++ b/dockerfiles/fedora-40-20-nightly.Dockerfile @@ -0,0 +1,57 @@ +FROM fedora:40 + +# Install base utils +RUN dnf update -y +RUN dnf install -y \ + psmisc \ + which + +# Install Rust dependencies +# https://www.pragmaticlinux.com/2022/05/how-to-install-build-essential-on-fedora/ +RUN dnf group install -y "C Development Tools and Libraries" "Development Tools" + +# Rust +# https://forge.rust-lang.org/infra/other-installation-methods.html#other-ways-to-install-rustup +RUN curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y +# TODO Find a cleaner solution to make rust/cargo binaries available everywhere. +RUN mv /root/.cargo/bin/* /usr/local/bin/ +RUN rustup completions bash > /etc/bash_completion.d/rustup.bash-completion + +# Intsall Rust nightly +RUN rustup default nightly + +# Install Node.js +RUN curl -fsSL https://rpm.nodesource.com/setup_20.x | bash - +RUN dnf install -y nodejs + +# Install Yarn +RUN curl --silent --location https://dl.yarnpkg.com/rpm/yarn.repo | tee /etc/yum.repos.d/yarn.repo +RUN dnf install -y yarn + +# Install Tarpaulin dependencies +RUN dnf group install -y "C Development Tools and Libraries" "Development Tools" +RUN dnf install -y openssl-devel + +# Install Tarpaulin +RUN cargo install cargo-tarpaulin + +# Install Tauri v2 dependencies +# https://v2.tauri.app/start/prerequisites/#linux +RUN dnf install -y \ + curl \ + file \ + libappindicator-gtk3-devel \ + librsvg2-devel \ + openssl-devel \ + webkit2gtk4.1-devel \ + wget +# RUN dnf group install -y "C Development Tools and Libraries" + +# Install tauri-driver +# https://tauri.app/v1/guides/testing/webdriver/introduction#system-dependencies +RUN cargo install tauri-driver +# TODO Find a cleaner solution to make rust/cargo binaries available everywhere. +RUN ln -s /root/.cargo/bin/tauri-driver /usr/local/bin/tauri-driver +RUN rustup completions bash > /etc/bash_completion.d/rustup.bash-completion + +CMD ["/bin/bash"] diff --git a/dockerfiles/fedora-40-20.Dockerfile b/dockerfiles/fedora-40-20.Dockerfile new file mode 100644 index 0000000..e4e3ae6 --- /dev/null +++ b/dockerfiles/fedora-40-20.Dockerfile @@ -0,0 +1,54 @@ +FROM fedora:40 + +# Install base utils +RUN dnf update -y +RUN dnf install -y \ + psmisc \ + which + +# Install Rust dependencies +# https://www.pragmaticlinux.com/2022/05/how-to-install-build-essential-on-fedora/ +RUN dnf group install -y "C Development Tools and Libraries" "Development Tools" + +# Rust +# https://forge.rust-lang.org/infra/other-installation-methods.html#other-ways-to-install-rustup +RUN curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y +# TODO Find a cleaner solution to make rust/cargo binaries available everywhere. +RUN mv /root/.cargo/bin/* /usr/local/bin/ +RUN rustup completions bash > /etc/bash_completion.d/rustup.bash-completion + +# Install Node.js +RUN curl -fsSL https://rpm.nodesource.com/setup_20.x | bash - +RUN dnf install -y nodejs + +# Install Yarn +RUN curl --silent --location https://dl.yarnpkg.com/rpm/yarn.repo | tee /etc/yum.repos.d/yarn.repo +RUN dnf install -y yarn + +# Install Tarpaulin dependencies +RUN dnf group install -y "C Development Tools and Libraries" "Development Tools" +RUN dnf install -y openssl-devel + +# Install Tarpaulin +RUN cargo install cargo-tarpaulin + +# Install Tauri v2 dependencies +# https://v2.tauri.app/start/prerequisites/#linux +RUN dnf install -y \ + curl \ + file \ + libappindicator-gtk3-devel \ + librsvg2-devel \ + openssl-devel \ + webkit2gtk4.1-devel \ + wget +# RUN dnf group install -y "C Development Tools and Libraries" + +# Install tauri-driver +# https://tauri.app/v1/guides/testing/webdriver/introduction#system-dependencies +RUN cargo install tauri-driver +# TODO Find a cleaner solution to make rust/cargo binaries available everywhere. +RUN ln -s /root/.cargo/bin/tauri-driver /usr/local/bin/tauri-driver +RUN rustup completions bash > /etc/bash_completion.d/rustup.bash-completion + +CMD ["/bin/bash"] diff --git a/dockerfiles/fedora-40-22-nightly.Dockerfile b/dockerfiles/fedora-40-22-nightly.Dockerfile new file mode 100644 index 0000000..2456274 --- /dev/null +++ b/dockerfiles/fedora-40-22-nightly.Dockerfile @@ -0,0 +1,57 @@ +FROM fedora:40 + +# Install base utils +RUN dnf update -y +RUN dnf install -y \ + psmisc \ + which + +# Install Rust dependencies +# https://www.pragmaticlinux.com/2022/05/how-to-install-build-essential-on-fedora/ +RUN dnf group install -y "C Development Tools and Libraries" "Development Tools" + +# Rust +# https://forge.rust-lang.org/infra/other-installation-methods.html#other-ways-to-install-rustup +RUN curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y +# TODO Find a cleaner solution to make rust/cargo binaries available everywhere. +RUN mv /root/.cargo/bin/* /usr/local/bin/ +RUN rustup completions bash > /etc/bash_completion.d/rustup.bash-completion + +# Intsall Rust nightly +RUN rustup default nightly + +# Install Node.js +RUN curl -fsSL https://rpm.nodesource.com/setup_22.x | bash - +RUN dnf install -y nodejs + +# Install Yarn +RUN curl --silent --location https://dl.yarnpkg.com/rpm/yarn.repo | tee /etc/yum.repos.d/yarn.repo +RUN dnf install -y yarn + +# Install Tarpaulin dependencies +RUN dnf group install -y "C Development Tools and Libraries" "Development Tools" +RUN dnf install -y openssl-devel + +# Install Tarpaulin +RUN cargo install cargo-tarpaulin + +# Install Tauri v2 dependencies +# https://v2.tauri.app/start/prerequisites/#linux +RUN dnf install -y \ + curl \ + file \ + libappindicator-gtk3-devel \ + librsvg2-devel \ + openssl-devel \ + webkit2gtk4.1-devel \ + wget +# RUN dnf group install -y "C Development Tools and Libraries" + +# Install tauri-driver +# https://tauri.app/v1/guides/testing/webdriver/introduction#system-dependencies +RUN cargo install tauri-driver +# TODO Find a cleaner solution to make rust/cargo binaries available everywhere. +RUN ln -s /root/.cargo/bin/tauri-driver /usr/local/bin/tauri-driver +RUN rustup completions bash > /etc/bash_completion.d/rustup.bash-completion + +CMD ["/bin/bash"] diff --git a/dockerfiles/fedora-40-22.Dockerfile b/dockerfiles/fedora-40-22.Dockerfile new file mode 100644 index 0000000..bf850c0 --- /dev/null +++ b/dockerfiles/fedora-40-22.Dockerfile @@ -0,0 +1,54 @@ +FROM fedora:40 + +# Install base utils +RUN dnf update -y +RUN dnf install -y \ + psmisc \ + which + +# Install Rust dependencies +# https://www.pragmaticlinux.com/2022/05/how-to-install-build-essential-on-fedora/ +RUN dnf group install -y "C Development Tools and Libraries" "Development Tools" + +# Rust +# https://forge.rust-lang.org/infra/other-installation-methods.html#other-ways-to-install-rustup +RUN curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y +# TODO Find a cleaner solution to make rust/cargo binaries available everywhere. +RUN mv /root/.cargo/bin/* /usr/local/bin/ +RUN rustup completions bash > /etc/bash_completion.d/rustup.bash-completion + +# Install Node.js +RUN curl -fsSL https://rpm.nodesource.com/setup_22.x | bash - +RUN dnf install -y nodejs + +# Install Yarn +RUN curl --silent --location https://dl.yarnpkg.com/rpm/yarn.repo | tee /etc/yum.repos.d/yarn.repo +RUN dnf install -y yarn + +# Install Tarpaulin dependencies +RUN dnf group install -y "C Development Tools and Libraries" "Development Tools" +RUN dnf install -y openssl-devel + +# Install Tarpaulin +RUN cargo install cargo-tarpaulin + +# Install Tauri v2 dependencies +# https://v2.tauri.app/start/prerequisites/#linux +RUN dnf install -y \ + curl \ + file \ + libappindicator-gtk3-devel \ + librsvg2-devel \ + openssl-devel \ + webkit2gtk4.1-devel \ + wget +# RUN dnf group install -y "C Development Tools and Libraries" + +# Install tauri-driver +# https://tauri.app/v1/guides/testing/webdriver/introduction#system-dependencies +RUN cargo install tauri-driver +# TODO Find a cleaner solution to make rust/cargo binaries available everywhere. +RUN ln -s /root/.cargo/bin/tauri-driver /usr/local/bin/tauri-driver +RUN rustup completions bash > /etc/bash_completion.d/rustup.bash-completion + +CMD ["/bin/bash"]