30 releases (8 stable)
2.0.1 | Jan 22, 2024 |
---|---|
1.1.3 | Jan 7, 2024 |
1.0.1 | Dec 17, 2023 |
0.4.1 | Dec 2, 2023 |
0.1.4 | Jul 15, 2023 |
#155 in Testing
2MB
251 lines
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 from my docker hub to simplify testing.
cd continuous && git checkout -b new-branch-name $tag || exit 1
GitHub workflow
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" && packer validate . && packer build .
Local workflow
Docker, Packer Git and lib notify must be installed on your system.
Install docker
curl -fsSL https://get.docker.com/rootless | sh
Configure packer
packer plugins install github.com/hashicorp/docker
Install continuous testing
Archlinux
paru -S continuous-testing
Others
cargo install continuous-testing fd-find
Initialize tracking
again init
Again configuration
# again.yaml
repository: continuous-testing # Repository name
username: taishingi # Repository username
domain: github.com # Repository domain
language: rust # Repository language
remote: origin # The remote name for push
Usage
git add .
git commit -m "msg"
Structure for rust executable
.
├── 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
.
├── 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
.
├── 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
.
├── 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