diff --git a/.forgejo/workflows/build-image.yml b/.forgejo/workflows/build-image.yml index 3794bd8..d5c200e 100644 --- a/.forgejo/workflows/build-image.yml +++ b/.forgejo/workflows/build-image.yml @@ -5,40 +5,22 @@ on: jobs: build: - runs-on: docker - container: - image: ubuntu:latest + runs-on: ubuntu-latest steps: - - name: Checkout - uses: actions/checkout@v4 + - name: Checkout + uses: actions/checkout@v4 - - name: login to docker registry - uses: docker/login-action@v3 - with: - registry: git.ragarock.moe - username: silvana - password: ${{ secrets.REGISTRY_TOKEN }} + - name: Clear image from cache + run: | + docker images git.kemitix.net/${{ env.GITHUB_REPOSITORY }} -q | sort -u | xargs -r docker rmi --force + docker system prune --force --all - - name: setup buildx - uses: docker/setup-buildx-action@v3 + - name: Build + run: docker build . -t git.kemitix.net/${{ env.GITHUB_REPOSITORY }}:latest - - name: build and push - uses: docker/build-push-action@v6 - with: - push: true - tags: git.ragarock.moe/${{ env.GITHUB_REPOSITORY }}:latest + - name: Login + run: docker login git.kemitix.net --username kemitix --password ${{ secrets.FORGEJO_TOKEN_WRITE_PACKAGE }} - # - name: Clear image from cache - # run: | - # docker images git.ragarock.moe/${{ env.GITHUB_REPOSITORY }} -q | sort -u | xargs -r docker rmi --force - # docker system prune --force --all - - # - name: Build - # run: docker build . -t git.ragarock.moe/${{ env.GITHUB_REPOSITORY }}:latest - - # - name: Login - # run: docker login git.ragarock.moe --username silvana --password ${{ secrets.FORGEJO_TOKEN_WRITE_PACKAGE }} - - # - name: Publish - # run: docker push git.ragarock.moe/${{ env.GITHUB_REPOSITORY }}:latest + - name: Publish + run: docker push git.kemitix.net/${{ env.GITHUB_REPOSITORY }}:latest diff --git a/.forgejo/workflows/push-next.yml b/.forgejo/workflows/push-next.yml index 8aca99b..3de00fb 100644 --- a/.forgejo/workflows/push-next.yml +++ b/.forgejo/workflows/push-next.yml @@ -6,7 +6,8 @@ jobs: test: runs-on: docker container: - image: git.ragarock.moe/silvana/rust:latest + image: + git.kemitix.net/kemitix/rust:latest strategy: matrix: toolchain: diff --git a/Cargo.toml b/Cargo.toml index 4b31261..41fa947 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -4,5 +4,6 @@ version = "0.1.0" edition = "2021" [dependencies] -kxio = "5.1" +kxio = "5.0" +native-tls = { version = "0.2", features = ["vendored"] } tokio = { version = "1.43", features = ["full"] } diff --git a/Dockerfile b/Dockerfile index 15fbcaf..e301952 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,6 +1,6 @@ FROM docker.io/rust:1.84.0-alpine3.21 -LABEL org.opencontainers.image.source=https://git.ragarock.moe/silvana/rust +LABEL org.opencontainers.image.source=https://git.kemitix.net/kemitix/rust RUN apk add --no-cache curl=8.11.1-r0 RUN curl -L https://github.com/cargo-bins/cargo-binstall/releases/download/v1.10.19/cargo-binstall-x86_64-unknown-linux-musl.tgz -o cargo-binstall.tgz && \ @@ -39,7 +39,6 @@ RUN apk add --no-cache \ libssl3 \ openssl-dev \ perl \ - dbus-dev \ git # clang \ @@ -48,8 +47,8 @@ RUN apk add --no-cache \ # dbus-dev \ -RUN git config --global user.email "holo@ragarock.moe" && \ - git config --global user.name "ForgeJo Action. See: https://git.ragarock.moe/silvana/rust" +RUN git config --global user.email "action@git.kemitix.net" && \ + git config --global user.name "ForgeJo Action. See: https://git.kemitix.net/kemitix/rust" COPY scripts/ /usr/local/bin/ diff --git a/README.md b/README.md index cf908c1..6a73835 100644 --- a/README.md +++ b/README.md @@ -42,7 +42,6 @@ The available toolchain in the image are: - cargo-chef - cargo-hack - release-plz -- dbus-dev - perl ### Scripts @@ -62,33 +61,10 @@ steps: ## Caveats -### openssl - -The alpine linux install doesn't build with this dependency. You can either compile `native-tls` with the `vendored` feature, or not use `openssl`. - -#### vendoered native-tls +### native-tls This crate *must* use the `vendored` feature in order to compile in the Alpine Linux image. ```toml native-tls = { version = "0.2", features = ["vendored"] } ``` - -#### Don't use `openssl` - -Check that none of your dependencies require `openssl`: - -```bash -cargo tree --edges normal -i openssl -``` - -This will list the tree of dependencies that are bringing in `openssl`. - -If you do need ssl/tls, try using `rustls`. e.g. - -```toml -reqwest = { version = "0.12", default-features = false, features = [ - "json", - "rustls-tls", -] } -``` diff --git a/justfile b/justfile index 373ea93..223b3a8 100644 --- a/justfile +++ b/justfile @@ -1,4 +1,4 @@ -image := "git.ragarock.moe/silvana/rust:test" +image := "git.kemitix.get/kemitix/rust:test" build: docker build . -t {{ image }} diff --git a/src/main.rs b/src/main.rs index 93488b4..341c44b 100644 --- a/src/main.rs +++ b/src/main.rs @@ -1,8 +1,10 @@ // mod kxio; +mod tls; fn main() -> Result<(), Box> { println!("Hello, world!"); + tls::main(); let rt = tokio::runtime::Runtime::new()?; Ok(rt.block_on(crate::kxio::main())?) diff --git a/src/tls.rs b/src/tls.rs new file mode 100644 index 0000000..f4cb49c --- /dev/null +++ b/src/tls.rs @@ -0,0 +1,15 @@ +use native_tls::TlsConnector; +use std::io::{Read, Write}; +use std::net::TcpStream; + +pub fn main() { + let connector = TlsConnector::new().unwrap(); + + let stream = TcpStream::connect("google.com:443").unwrap(); + let mut stream = connector.connect("google.com", stream).unwrap(); + + stream.write_all(b"GET / HTTP/1.0\r\n\r\n").unwrap(); + let mut res = vec![]; + stream.read_to_end(&mut res).unwrap(); + println!("{}", String::from_utf8_lossy(&res)); +}