diff --git a/.github/workflows/publish_release.yaml b/.github/workflows/publish_release.yaml new file mode 100644 index 0000000..341233e --- /dev/null +++ b/.github/workflows/publish_release.yaml @@ -0,0 +1,42 @@ +name: Publish + +on: + release: + types: + - created + workflow_dispatch: {} + +jobs: + publish: + name: Build & Publish + runs-on: ubuntu-latest + steps: + - name: Set up QEMU + uses: docker/setup-qemu-action@v2 + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@v2 + - name: Checkout + uses: actions/checkout@v3 + - name: Setup Go + uses: actions/setup-go@v3 + with: + go-version: '>=1.18.0' + - name: Version + run: echo "RELEASE_VERSION=${GITHUB_REF#refs/*/}" >> $GITHUB_ENV + - name: Test + run: | + make test + - name: Build + run: | + make build + - name: Login to Docker Hub + uses: docker/login-action@v2 + with: + username: ${{ secrets.DOCKERHUB_USERNAME }} + password: ${{ secrets.DOCKERHUB_TOKEN }} + - name: Build and push + uses: docker/build-push-action@v3 + with: + context: . + push: true + tags: yeslayla/birdbot:latest,yeslayla/birdbot:${{ env.RELEASE_VERSION }} \ No newline at end of file diff --git a/.github/workflows/validate.yaml b/.github/workflows/validate.yaml new file mode 100644 index 0000000..d9ab4a5 --- /dev/null +++ b/.github/workflows/validate.yaml @@ -0,0 +1,23 @@ +name: Validate + +on: + push: {} + pull_request: {} + +jobs: + publish: + name: Test & Build + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@v3 + - name: Setup Go + uses: actions/setup-go@v3 + with: + go-version: '>=1.18.0' + - name: Test + run: | + make test + - name: Build + run: | + make build \ No newline at end of file diff --git a/Makefile b/Makefile index 931f4ef..95ac6e0 100644 --- a/Makefile +++ b/Makefile @@ -2,8 +2,7 @@ PROJECTNAME="Bird Bot" PROJECT_BIN="birdbot" # Go related variables. -GOBASE=$(shell pwd) -GOBIN=$(GOBASE)/build +GOBIN=./build GOFILES=$(wildcard *.go) # Make is verbose in Linux. Make it silent.