Skip to content

Commit

Permalink
Initial commit
Browse files Browse the repository at this point in the history
  • Loading branch information
Ab20zip committed Jul 2, 2024
0 parents commit 9cec2a0
Show file tree
Hide file tree
Showing 16 changed files with 705 additions and 0 deletions.
1 change: 1 addition & 0 deletions .github/CODEOWNERS
Validating CODEOWNERS rules …
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
* @Ab20zip
25 changes: 25 additions & 0 deletions .github/actions/common-setup/action.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
name: 'Common Setup'
description: 'Set up JDK and grant execute permissions for gradlew'

inputs:
java-version:
description: 'Java version'
required: true
default: '22'

runs:
using: 'composite'
steps:
- name: Set up JDK
uses: actions/setup-java@fd08b9c8dc6f530393a204a04e1f05101a5d00fd # v4
with:
java-version: ${{ inputs.java-version }}
distribution: 'adopt'

- name: Verify JDK installation
run: java -version
shell: bash

- name: Grant execute permission for gradlew
run: chmod +x gradlew
shell: bash
37 changes: 37 additions & 0 deletions .github/renovate.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
{
"extends": [
"config:base",
":semanticCommits",
":semanticCommitTypeAll(Deps)",
":semanticCommitScopeDisabled",
":automergeAll",
":automergeBranch",
":disableDependencyDashboard",
":pinVersions",
":label(dependencies)"
],
"packageRules": [
{
"description": "Automate workflow dependency updates",
"matchPaths": [
"**/.github/workflows/**"
],
"matchManagers": [
"github-actions"
]
},
{
"description": "Automate Gradle dependency updates",
"matchManagers": [
"gradle"
]
},
{
"description": "Automate Gradle Wrapper updates",
"matchManagers": [
"gradle-wrapper"
]
}
],
"automerge": true
}
64 changes: 64 additions & 0 deletions .github/workflows/main.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,64 @@
name: Build

on:
push:
branches:
- 'main'
- 'renovate/*'
tags:
- 'v*' # For v1.0, v0.1.0, etc
pull_request:
branches:
- 'main'
schedule:
- cron: '0 0 * * *'
workflow_dispatch:

concurrency:
group: ${{ format('{0}-{1}', github.job, github.ref) }}
cancel-in-progress: true

jobs:
build:
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [ ubuntu-latest, windows-latest, macos-latest ]
java: [ 22 ]
steps:
- name: Checkout code
uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4

- name: Cache Gradle Dependencies
uses: actions/cache@0c45773b623bea8c8e75f6c82b208c3cf94ea4f9 # v4
with:
path: |
~/.gradle/caches
~/.gradle/wrapper
key: ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle*', '**/gradle-wrapper.properties') }}
restore-keys: |
${{ runner.os }}-gradle-
- name: Common Setup
uses: ./.github/actions/common-setup
with:
java-version: ${{ matrix.java }}

- name: Retrieve Project Name
run: echo "PROJECT_NAME=$(${{github.workspace}}/gradlew -q printProjectName)" >> $GITHUB_OUTPUT
id: project_name

- name: Get Project Name
run: echo "PROJECT_NAME=${{steps.project_name.outputs.PROJECT_NAME}}" >> $GITHUB_ENV

- name: Build with Gradle
run: ./gradlew build --info

- name: Upload Build Results
uses: actions/upload-artifact@65462800fd760344b1a7b4382951275a0abb4808 # v4
with:
name: Build Results (Java ${{ matrix.java }} on ${{ matrix.os }})
path: ${{ github.workspace }}/build/libs

outputs:
project_name: ${{ steps.project_name.outputs.PROJECT_NAME }}
36 changes: 36 additions & 0 deletions .github/workflows/stale.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
name: 'Identify and close stale issues and PRs'

on:
workflow_dispatch:
schedule:
- cron: '0 0 * * *'

permissions:
issues: write
pull-requests: write

jobs:
stale:
runs-on: ubuntu-latest
steps:
- uses: actions/stale@28ca1036281a5e5922ead5184a1bbf96e5fc984e # v9
with:
stale-issue-message:
This issue has been identified as stale because it
has gone 14 days with no activity.

The issue will be closed in 5 days. If this is incorrect,
simply comment on the issue, or remove the stale label.
stale-pr-message:
This pull request has been identified as stale because
it has gone 14 days with no activity.

The pull request will be closed in 5 days. If this is incorrect,
simply comment on the PR, remove the label, or merge the PR.

Reminder, once a PR is approved, and checks have passed,
you **can merge it yourself.**
days-before-stale: 14
days-before-close: 5
exempt-issue-labels: 'keep-me'
exempt-pr-labels: 'keep-me'
4 changes: 4 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
.idea
.kotlin
.gradle
build
24 changes: 24 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
# Velonet - CLI Internet Speed Test Tool
Welcome to the CLI Internet Speed Test Tool, a streamlined and efficient command-line application developed with Kotlin and Gradle. This tool offers a quick and accurate way to measure your internet speed directly from the terminal, making it ideal for developers, network administrators, and tech enthusiasts.

## Introduction
In an era where internet speed is crucial, our CLI tool provides real-time data on download and upload speeds, latency, and more. Built with the power of Kotlin and managed by Gradle, this tool ensures reliability and performance in delivering essential internet speed metrics.

## Screenshot

![Velonet Screenshot](https://raw.githubusercontent.com/Ab20zip/velonet/main/screenshots/velonet.png)

## Features
The CLI Internet Speed Test Tool is designed for simplicity and ease of use. With a single command, you can initiate a comprehensive speed test and receive detailed metrics in a clean and readable format. This cross-platform tool ensures seamless operation on various operating systems.

## Getting Started
To use the tool, ensure Kotlin and Gradle are installed on your system. Clone the repository, navigate to the project directory, and build the project using Gradle. Once built, you can run the tool from your terminal. Detailed setup instructions are available in the project documentation.

## Technical Details
This tool utilizes Kotlin for its expressive syntax and robust performance, and Gradle for efficient build management. It communicates with a reliable speed test API to fetch real-time data, which is then displayed in an easy-to-read format. The project structure follows best practices, ensuring maintainability and ease of extension.

## Contribution and Support
Contributions are welcome to enhance the tool's functionality. For issues, questions, or support, please open an issue in the GitHub repository. Refer to the contribution guidelines for more information on how to get involved.

## Conclusion
The CLI Internet Speed Test Tool is a testament to the power of Kotlin and Gradle in creating efficient command-line applications. Providing a quick and reliable way to measure internet speed, this tool aims to be an essential part of your toolkit. Thank you for choosing our tool, and happy speed testing!
19 changes: 19 additions & 0 deletions build.gradle.kts
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
plugins {
kotlin("jvm") version "2.0.0"
application
}

repositories {
mavenCentral()
}

dependencies {
implementation(kotlin("stdlib"))
implementation("me.tongfei:progressbar:0.10.1")
implementation("com.github.ajalt.mordant:mordant:2.0.0-beta8")
implementation("org.jetbrains.kotlinx:kotlinx-coroutines-core:1.9.0-RC")
}

application {
mainClass.set("com.altiran.velonet.MainKt")
}
2 changes: 2 additions & 0 deletions gradle/gradle-daemon-jvm.properties
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
#This file is generated by updateDaemonJvm
toolchainVersion=22
Binary file added gradle/wrapper/gradle-wrapper.jar
Binary file not shown.
7 changes: 7 additions & 0 deletions gradle/wrapper/gradle-wrapper.properties
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-8.8-bin.zip
networkTimeout=10000
validateDistributionUrl=true
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
Loading

0 comments on commit 9cec2a0

Please sign in to comment.