Skip to content

Latest commit

 

History

History
45 lines (28 loc) · 1.75 KB

README.md

File metadata and controls

45 lines (28 loc) · 1.75 KB

Semaphore Continuous Integration Golang demo

Build Status

This is an example program and CI pipeline showing how to run a Go project on Semaphore

CI on Semaphore

Feel free to fork this repository and use it to create a Semaphore project.

The CI pipeline is defined in .semaphore/semaphore.yml and when you run it it will look like this:

CI pipeline on Semaphore

You can extend the pipeline with deployment by implementing a promotion. Refer to Semaphore documentation for additional deployment examples.

Building the project

The project has been tested with Go 1.21. After cloning the repository:

$ go get
$ go build -o ./bin/main

Testing locally

To run the tests on you machine:

  1. Install gotestsum: go install gotest.tools/gotestsum@latest
  2. Start a test PostgreSQL instance. The easiest way is with Docker: docker run --rm -d --name test-instance -e POSTGRES_HOST_AUTH_METHOD=trust -p 5432:5432 postgres
  3. Create a test table: psql -p 5432 -h localhost -U postgres -c "CREATE DATABASE s2"
  4. Run the tests with: gotestsum
  5. Stop the test database: docker stop test-instance

License

Copyright (c) 2024 Semaphore Technologies

Distributed under the MIT License. See the file LICENSE.