diff --git a/.github/workflows/build-docker-image.yaml b/.github/workflows/build-docker-image.yaml new file mode 100644 index 0000000..e1655ab --- /dev/null +++ b/.github/workflows/build-docker-image.yaml @@ -0,0 +1,37 @@ +name: Docker image build +on: + push: + branches: [master] + paths: + - app/** + pull_request: + paths: + - app/** + +jobs: + build-images: + name: Build docker image + runs-on: ubuntu-latest + timeout-minutes: 10 + steps: + - uses: actions/checkout@v4 + + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@v3 + + - name: Build test-app + run: make build + working-directory: app + + - name: Login to Quay + if: github.event_name == 'push' + uses: docker/login-action@v3 + with: + registry: quay.csssr.cloud + username: csssr+github_devops_test_app + password: ${{ secrets.QUAY_REGISTRY_PASSWORD }} + + - name: Publish test-app + run: make publish + if: github.event_name == 'push' + working-directory: app diff --git a/app/Makefile b/app/Makefile new file mode 100644 index 0000000..e9215ad --- /dev/null +++ b/app/Makefile @@ -0,0 +1,17 @@ +.PHONY: start build publish + +export GOBIN=${CURDIR}/bin + +version ?= master + +$(GOBIN)/air: + go install github.com/air-verse/air@latest + +start: $(GOBIN)/air + air + +build: + docker build . --tag quay.csssr.cloud/csssr/test-app:$(version) + +publish: + docker push quay.csssr.cloud/csssr/test-app:$(version)