Merge pull request #696 from rapidpro/upmerge #1
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: CI | |
on: [push, pull_request] | |
env: | |
go-version: "1.19.x" | |
jobs: | |
test: | |
name: Test | |
env: | |
pg-version: "14" | |
postgis-version: "3.2" | |
redis-version: "6.2" | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout code | |
uses: actions/checkout@v3 | |
- name: Install Redis | |
uses: zhulik/redis-action@v1.0.0 | |
with: | |
redis version: ${{ env.redis-version }} | |
- name: Install PostgreSQL | |
uses: nyaruka/postgis-action@v2 | |
with: | |
postgresql version: ${{ env.pg-version }} | |
postgis version: ${{ env.postgis-version }} | |
postgresql password: temba | |
- name: Install Linux packages | |
run: | | |
sudo apt-get update | |
sudo apt install -y --no-install-recommends postgresql-client | |
- name: Initialize database | |
# we create our test database with a different user so that we can drop everything owned by this user between tests | |
run: | | |
export PGPASSWORD=temba | |
psql -h localhost -U postgres --no-password -c "CREATE USER mailroom_test PASSWORD 'temba';" | |
psql -h localhost -U postgres --no-password -c "ALTER ROLE mailroom_test WITH SUPERUSER;" | |
psql -h localhost -U postgres --no-password -c "CREATE DATABASE mailroom_test;" | |
- name: Install Go | |
uses: actions/setup-go@v3 | |
with: | |
go-version: ${{ env.go-version }} | |
- name: Run tests | |
run: | | |
export PGPASSWORD=temba | |
go test -p=1 -coverprofile=coverage.text -covermode=atomic ./... | |
- name: Upload coverage | |
if: success() | |
uses: codecov/codecov-action@v2 | |
with: | |
token: ${{ secrets.CODECOV_TOKEN }} | |
fail_ci_if_error: true | |
release: | |
name: Release | |
needs: [test] | |
if: startsWith(github.ref, 'refs/tags/') | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout code | |
uses: actions/checkout@v3 | |
- name: Fetch GoFlow docs | |
# for backward compatibility, English docs are copied to root of docs directory | |
run: | | |
GOFLOW_VERSION=$(grep goflow go.mod | cut -d" " -f2 | cut -c2-) | |
curl -L https://github.com/nyaruka/goflow/releases/download/v${GOFLOW_VERSION}/docs.tar.gz | tar zxv | |
cp ./docs/en-us/*.* docs/ | |
- name: Install Go | |
uses: actions/setup-go@v3 | |
with: | |
go-version: ${{ env.go-version }} | |
- name: Publish release | |
uses: goreleaser/goreleaser-action@v1 | |
if: ${{ !contains(github.ref, '-') }} | |
with: | |
version: v0.147.2 | |
args: release --rm-dist | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
- name: Publish non-master release | |
uses: goreleaser/goreleaser-action@v1 | |
if: contains(github.ref, '-') | |
with: | |
version: v0.147.2 | |
args: release --rm-dist --skip-validate | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} |