Issue an explicit rollback if a migration statement returns any error #21
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: | |
jobs: | |
lint: | |
name: lint | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/setup-go@v3 | |
with: | |
go-version: "1.20.x" | |
- uses: actions/checkout@v3 | |
- name: golangci-lint | |
uses: golangci/golangci-lint-action@v3 | |
with: | |
version: latest | |
test: | |
runs-on: ubuntu-latest | |
strategy: | |
matrix: | |
go: ["1.19.x", "1.20.x"] | |
steps: | |
- uses: actions/checkout@v3 | |
- uses: actions/setup-go@v3 | |
with: | |
go-version: ${{ matrix.go }} | |
- name: Run test | |
run: make test COVERAGE_DIR=/tmp/coverage | |
- name: Send goveralls coverage | |
uses: shogo82148/actions-goveralls@v1 | |
with: | |
path-to-profile: /tmp/coverage/combined.txt | |
flag-name: Go-${{ matrix.go }} | |
parallel: true | |
check-coverage: | |
name: Check coverage | |
needs: [test] | |
runs-on: ubuntu-latest | |
steps: | |
- uses: shogo82148/actions-goveralls@v1 | |
with: | |
parallel-finished: true | |
goreleaser: | |
name: Release a new version | |
needs: [lint, test] | |
runs-on: ubuntu-latest | |
environment: GoReleaser | |
# This job only runs when | |
# 1. When the previous `lint` and `test` jobs has completed successfully | |
# 2. When the repository is not a fork, i.e. it will only run on the official golang-migrate/migrate | |
# 3. When the workflow is triggered by a tag with `v` prefix | |
if: ${{ success() && github.repository == 'golang-migrate/migrate' && startsWith(github.ref, 'refs/tags/v') }} | |
steps: | |
- uses: actions/checkout@v3 | |
with: | |
fetch-depth: 0 | |
- uses: ruby/setup-ruby@v1 | |
with: | |
ruby-version: 2.7 | |
- uses: actions/setup-go@v3 | |
with: | |
go-version: "1.19.x" | |
- uses: docker/setup-qemu-action@v1 | |
- uses: docker/setup-buildx-action@v1 | |
- uses: docker/login-action@v1 | |
with: | |
username: golangmigrate | |
password: ${{ secrets.DOCKERHUB_TOKEN }} | |
- run: echo "SOURCE=$(make echo-source)" >> $GITHUB_ENV | |
- run: echo "DATABASE=$(make echo-database)" >> $GITHUB_ENV | |
- uses: goreleaser/goreleaser-action@v2 | |
with: | |
version: latest | |
args: release --rm-dist | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
- run: gem install package_cloud | |
- run: package_cloud push golang-migrate/migrate/ubuntu/bionic dist/migrate.linux-amd64.deb | |
env: | |
PACKAGECLOUD_TOKEN: ${{ secrets.PACKAGECLOUD_TOKEN }} | |
- run: package_cloud push golang-migrate/migrate/ubuntu/focal dist/migrate.linux-amd64.deb | |
env: | |
PACKAGECLOUD_TOKEN: ${{ secrets.PACKAGECLOUD_TOKEN }} | |
- run: package_cloud push golang-migrate/migrate/ubuntu/jammy dist/migrate.linux-amd64.deb | |
env: | |
PACKAGECLOUD_TOKEN: ${{ secrets.PACKAGECLOUD_TOKEN }} | |
- run: package_cloud push golang-migrate/migrate/debian/buster dist/migrate.linux-amd64.deb | |
env: | |
PACKAGECLOUD_TOKEN: ${{ secrets.PACKAGECLOUD_TOKEN }} | |
- run: package_cloud push golang-migrate/migrate/debian/bullseye dist/migrate.linux-amd64.deb | |
env: | |
PACKAGECLOUD_TOKEN: ${{ secrets.PACKAGECLOUD_TOKEN }} | |
- run: package_cloud push golang-migrate/migrate/debian/bookworm dist/migrate.linux-amd64.deb | |
env: | |
PACKAGECLOUD_TOKEN: ${{ secrets.PACKAGECLOUD_TOKEN }} |