https://github.com/otechdo/continuous-testing
A continuous testing tools for Linux users
https://github.com/otechdo/continuous-testing
automation bash continuous continuous-testing d docker git go golang packer rust testing
Last synced: about 1 month ago
JSON representation
A continuous testing tools for Linux users
- Host: GitHub
- URL: https://github.com/otechdo/continuous-testing
- Owner: otechdo
- License: gpl-3.0
- Created: 2023-11-24T09:18:15.000Z (about 2 years ago)
- Default Branch: master
- Last Pushed: 2024-03-04T03:22:44.000Z (almost 2 years ago)
- Last Synced: 2025-06-25T19:52:57.087Z (8 months ago)
- Topics: automation, bash, continuous, continuous-testing, d, docker, git, go, golang, packer, rust, testing
- Language: Rust
- Homepage: https://github.com/taishingi/continuous-testing
- Size: 50.4 MB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# What it's ?

It's a project to run continuous testing to check if the last commit have not broken something.
On every commit run a git clone of your project in the container, print the latest commit, run build and tests.
On your computer you will see notification after the build or on the tracking initialize.
The continuous directory is now a git repository.
The latest release branch take the name of your environment variable $USER.
You can be back to an old release if you want or create your branch.
All providers scripts are based on [archlinux](https://archlinux.org) from my [docker hub](https://hub.docker.com/u/taishingi) to simplify testing.
[D](https://hub.docker.com/r/taishingi/dlang/tags) [Rust](https://hub.docker.com/r/taishingi/rlang/tags) [Go](https://hub.docker.com/r/taishingi/glang/tags) [Bash](https://hub.docker.com/r/taishingi/shlang/tags) [Php](https://hub.docker.com/r/taishingi/plang) [C](https://hub.docker.com/r/taishingi/clang) [Java](https://hub.docker.com/r/taishingi/jlang) [Template](https://github.com/taishingi/continuous-template)
```bash
cd continuous && git checkout -b new-branch-name $tag || exit 1
```
[](https://github.com/taishingi/continuous-testing/actions/workflows/continuous.yml)
[](https://github.com/taishingi/continuous-testing/actions/workflows/zuu.yml)






## GitHub workflow
```yaml
name: continuous
on:
push:
branches: [ "master" , "develop" ]
pull_request:
branches: [ "master" , "develop"]
env:
CARGO_TERM_COLOR: always
jobs:
continuous:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: deps
run: sudo apt-get install -y curl fd-find git docker-ce docker-ce-cli containerd.io docker-buildx-plugin packer && packer plugins install github.com/hashicorp/docker
- name: continuous
run: git clone https://github.com/taishingi/continuous-template.git continuous && cd continuous/rust && ./scripts-gen "github.com" "username" "repository" "${GITHUB_REF##*/}" "cpu" && packer validate . && packer build .
```
## Local workflow
[Docker](https://docs.docker.com/engine/install/), [Packer](https://developer.hashicorp.com/packer/docs) [Git](https://git-scm.com) and
lib notify must be installed on your system.
### Install docker
```bash
curl -fsSL https://get.docker.com/rootless | sh
```
### Configure packer
```bash
packer plugins install github.com/hashicorp/docker
```
### Configure packer for go
```bash
packer plugins install github.com/hashicorp/googlecompute
````
### Install continuous testing
#### Archlinux




```bash
paru -S continuous-testing
```
#### Others
```bash
cargo install continuous-testing fd-find
```
### Initialize tracking
```bash
again init
```
### Again configuration
```dotenv
AGAIN_REPOSITORY=continuous-testing
AGAIN_USERNAME=taishingi
AGAIN_BRANCH=master
AGAIN_DOMAIN=github.com
AGAIN_CPU=5
AGAIN_LANGUAGE=rust
AGAIN_REMOTE=origin
```
### Again language valid
- c
- c++
- d
- go
- java
- php
- rust
- sh
### Usage
```bash
git add .
git commit -m "msg"
```
## Structure for rust executable
```bash
.
├── continuous
│ ├── d
│ │ ├── d.pkr.hcl
│ │ ├── README.md
│ │ └── scripts-gen
│ ├── go
│ │ ├── go.pkr.hcl
│ │ ├── main.go
│ │ ├── README.md
│ │ └── scripts-gen
│ ├── rust
│ │ ├── beta
│ │ ├── nightly
│ │ ├── README.md
│ │ ├── rust.pkr.hcl
│ │ ├── scripts-gen
│ │ └── stable
│ ├── sh
│ │ ├── bash.pkr.hcl
│ │ ├── README.md
│ │ └── scripts-gen
│ └── README.md
├── src
│ └── main.rs
└── Cargo.toml
```
## Structure for rust library
```bash
.
├── continuous
│ ├── d
│ │ ├── d.pkr.hcl
│ │ ├── README.md
│ │ └── scripts-gen
│ ├── go
│ │ ├── go.pkr.hcl
│ │ ├── main.go
│ │ ├── README.md
│ │ └── scripts-gen
│ ├── rust
│ │ ├── beta
│ │ ├── nightly
│ │ ├── README.md
│ │ ├── rust.pkr.hcl
│ │ ├── scripts-gen
│ │ └── stable
│ ├── sh
│ │ ├── bash.pkr.hcl
│ │ ├── README.md
│ │ └── scripts-gen
│ └── README.md
├── src
│ └── lib.rs
└── Cargo.toml
```
## Structure for d
```bash
.
├── continuous
│ ├── d
│ │ ├── beta
│ │ ├── d.pkr.hcl
│ │ ├── nightly
│ │ ├── README.md
│ │ ├── scripts-gen
│ │ └── stable
│ ├── go
│ │ ├── go.pkr.hcl
│ │ ├── main.go
│ │ ├── README.md
│ │ └── scripts-gen
│ ├── rust
│ │ ├── README.md
│ │ ├── rust.pkr.hcl
│ │ └── scripts-gen
│ ├── sh
│ │ ├── bash.pkr.hcl
│ │ ├── README.md
│ │ └── scripts-gen
│ └── README.md
├── source
│ └── app.d
└── dub.json
```
## File structure for go
```bash
.
├── continuous
│ ├── d
│ │ ├── d.pkr.hcl
│ │ ├── README.md
│ │ └── scripts-gen
│ ├── go
│ │ ├── beta
│ │ ├── go.pkr.hcl
│ │ ├── main.go
│ │ ├── nightly
│ │ ├── README.md
│ │ ├── scripts-gen
│ │ └── stable
│ ├── rust
│ │ ├── README.md
│ │ ├── rust.pkr.hcl
│ │ └── scripts-gen
│ ├── sh
│ │ ├── bash.pkr.hcl
│ │ ├── README.md
│ │ └── scripts-gen
│ └── README.md
└── go.mod
```