-
Notifications
You must be signed in to change notification settings - Fork 5
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
chore: tests with Go workspaces #90
Changes from 1 commit
933a9c4
7766854
7ea3b6b
b15f0c8
e407e31
815a80a
39ef0bf
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,99 @@ | ||
name: nats | ||
|
||
on: | ||
push: | ||
branches: | ||
- master | ||
- stable | ||
pull_request: | ||
branches: | ||
- master | ||
- stable | ||
|
||
jobs: | ||
nats_test: | ||
name: NATS plugin (Go ${{ matrix.go }}, PHP ${{ matrix.php }}, OS ${{matrix.os}}) | ||
runs-on: ${{ matrix.os }} | ||
timeout-minutes: 60 | ||
strategy: | ||
matrix: | ||
php: [ "8.2" ] | ||
go: [ stable ] | ||
os: [ "ubuntu-latest" ] | ||
steps: | ||
- name: Set up Go ${{ matrix.go }} | ||
uses: actions/setup-go@v4 # action page: <https://github.com/actions/setup-go> | ||
with: | ||
go-version: ${{ matrix.go }} | ||
|
||
- name: Set up PHP ${{ matrix.php }} | ||
uses: shivammathur/setup-php@v2 # action page: <https://github.com/shivammathur/setup-php> | ||
with: | ||
php-version: ${{ matrix.php }} | ||
extensions: sockets | ||
|
||
- name: Check out code | ||
uses: actions/checkout@v4 | ||
|
||
- name: Get Composer Cache Directory | ||
id: composer-cache | ||
run: echo "::set-output name=dir::$(composer config cache-files-dir)" | ||
|
||
- name: Init Composer Cache # Docs: <https://git.io/JfAKn#php---composer> | ||
uses: actions/cache@v3 | ||
with: | ||
path: ${{ steps.composer-cache.outputs.dir }} | ||
key: ${{ runner.os }}-composer-${{ matrix.php }}-${{ hashFiles('**/composer.json') }} | ||
restore-keys: ${{ runner.os }}-composer- | ||
|
||
- name: Install Composer dependencies | ||
run: cd tests/php_test_files && composer update --prefer-dist --no-progress --ansi | ||
|
||
- name: Init Go modules Cache # Docs: <https://git.io/JfAKn#go---modules> | ||
uses: actions/cache@v3 | ||
with: | ||
path: ~/go/pkg/mod | ||
key: ${{ runner.os }}-go-${{ hashFiles('**/go.sum') }} | ||
restore-keys: ${{ runner.os }}-go- | ||
|
||
- name: Install Go dependencies | ||
run: go mod download | ||
|
||
- name: Run golang tests with coverage | ||
run: | | ||
cd tests | ||
mkdir ./coverage-ci | ||
|
||
docker-compose -f env/docker-compose-nats.yaml up -d | ||
sleep 30 | ||
|
||
go test -timeout 20m -v -race -cover -tags=debug -failfast -coverpkg=$(cat pkgs.txt) -coverprofile=./coverage-ci/nats.out -covermode=atomic jobs_nats_test.go | ||
docker compose -f env/docker-compose-nats.yaml down | ||
|
||
- name: Archive code coverage results | ||
uses: actions/upload-artifact@v3 | ||
with: | ||
name: coverage | ||
path: ./tests/coverage-ci/nats.out | ||
|
||
codecov: | ||
name: Upload codecov | ||
runs-on: ubuntu-latest | ||
needs: | ||
- nats_test | ||
|
||
timeout-minutes: 60 | ||
steps: | ||
- name: Download code coverage results | ||
uses: actions/download-artifact@v3 | ||
- run: | | ||
cd coverage | ||
echo 'mode: atomic' > summary.txt | ||
tail -q -n +2 *.out >> summary.txt | ||
sed -i '2,${/roadrunner/!d}' summary.txt | ||
|
||
- name: upload to codecov | ||
uses: codecov/codecov-action@v3 # Docs: <https://github.com/codecov/codecov-action> | ||
with: | ||
file: ./coverage/summary.txt | ||
fail_ci_if_error: false |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,99 @@ | ||
name: nats_durability | ||
|
||
on: | ||
push: | ||
branches: | ||
- master | ||
- stable | ||
pull_request: | ||
branches: | ||
- master | ||
- stable | ||
|
||
jobs: | ||
nats_durability_test: | ||
name: NATS durability plugin (Go ${{ matrix.go }}, PHP ${{ matrix.php }}, OS ${{matrix.os}}) | ||
runs-on: ${{ matrix.os }} | ||
timeout-minutes: 60 | ||
strategy: | ||
matrix: | ||
php: [ "8.2" ] | ||
go: [ stable ] | ||
os: [ "ubuntu-latest" ] | ||
steps: | ||
- name: Set up Go ${{ matrix.go }} | ||
uses: actions/setup-go@v4 # action page: <https://github.com/actions/setup-go> | ||
with: | ||
go-version: ${{ matrix.go }} | ||
|
||
- name: Set up PHP ${{ matrix.php }} | ||
uses: shivammathur/setup-php@v2 # action page: <https://github.com/shivammathur/setup-php> | ||
with: | ||
php-version: ${{ matrix.php }} | ||
extensions: sockets | ||
|
||
- name: Check out code | ||
uses: actions/checkout@v4 | ||
|
||
- name: Get Composer Cache Directory | ||
id: composer-cache | ||
run: echo "::set-output name=dir::$(composer config cache-files-dir)" | ||
|
||
- name: Init Composer Cache # Docs: <https://git.io/JfAKn#php---composer> | ||
uses: actions/cache@v3 | ||
with: | ||
path: ${{ steps.composer-cache.outputs.dir }} | ||
key: ${{ runner.os }}-composer-${{ matrix.php }}-${{ hashFiles('**/composer.json') }} | ||
restore-keys: ${{ runner.os }}-composer- | ||
|
||
- name: Install Composer dependencies | ||
run: cd tests/php_test_files && composer update --prefer-dist --no-progress --ansi | ||
|
||
- name: Init Go modules Cache # Docs: <https://git.io/JfAKn#go---modules> | ||
uses: actions/cache@v3 | ||
with: | ||
path: ~/go/pkg/mod | ||
key: ${{ runner.os }}-go-${{ hashFiles('**/go.sum') }} | ||
restore-keys: ${{ runner.os }}-go- | ||
|
||
- name: Install Go dependencies | ||
run: go mod download | ||
|
||
- name: Run golang tests with coverage | ||
run: | | ||
cd tests | ||
mkdir ./coverage-ci | ||
|
||
docker-compose -f env/docker-compose-nats.yaml up -d | ||
sleep 30 | ||
|
||
go test -timeout 20m -v -race -cover -tags=debug -failfast -coverpkg=$(cat pkgs.txt) -coverprofile=./coverage-ci/nats_dur.out -covermode=atomic jobs_nats_durability_test.go | ||
docker compose -f env/docker-compose-nats.yaml down | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. The tests are dependent on a Docker container being up and running. However, there's no error handling in case the Docker container fails to start. Consider adding a check after docker-compose -f env/docker-compose-nats.yaml up -d
+ if [ "$(docker ps -q -f status=running -f name=nats_container_name)" ]; then
+ echo "NATS Docker container started successfully."
+ else
+ echo "Failed to start NATS Docker container."
+ exit 1
+ fi
sleep 30 Here, replace |
||
|
||
- name: Archive code coverage results | ||
uses: actions/upload-artifact@v3 | ||
with: | ||
name: coverage | ||
path: ./tests/coverage-ci/nats_dur.out | ||
|
||
codecov: | ||
name: Upload codecov | ||
runs-on: ubuntu-latest | ||
needs: | ||
- nats_durability_test | ||
|
||
timeout-minutes: 60 | ||
steps: | ||
- name: Download code coverage results | ||
uses: actions/download-artifact@v3 | ||
- run: | | ||
cd coverage | ||
echo 'mode: atomic' > summary.txt | ||
tail -q -n +2 *.out >> summary.txt | ||
sed -i '2,${/roadrunner/!d}' summary.txt | ||
|
||
- name: upload to codecov | ||
uses: codecov/codecov-action@v3 # Docs: <https://github.com/codecov/codecov-action> | ||
with: | ||
file: ./coverage/summary.txt | ||
fail_ci_if_error: false |
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -12,5 +12,5 @@ | |
*.out | ||
|
||
# Dependency directories (remove the comment below to include it) | ||
# vendor/ | ||
vendor/ | ||
.idea |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,6 @@ | ||
go 1.21.1 | ||
|
||
use ( | ||
. | ||
./tests | ||
) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The job matrix is currently set to only test on
ubuntu-latest
with PHP version8.2
and the stable Go version. If you plan to support multiple operating systems, PHP versions, or Go versions, consider expanding this matrix to include those as well.