name: API Image on: push: paths: - 'api/**' - '.github/workflows/api-image.yml' branches: - master release: types: - published jobs: build: name: push API docker image runs-on: ubuntu-latest steps: - name: Check out Git repository uses: actions/checkout@v4 with: sparse-checkout: 'api' sparse-checkout-cone-mode: false - name: Move API files to root run: | ls -lah shopt -s dotglob mv api/* . rm -rf api ls -lah - name: Log in to Docker Hub uses: docker/login-action@v3 with: username: ${{ secrets.DOCKER_USERNAME }} password: ${{ secrets.DOCKER_PASSWORD }} - name: Extract metadata (tags, labels) for Docker id: meta uses: docker/metadata-action@v5 with: images: ohmyform/api tags: | type=raw,value=latest type=semver,pattern={{major}} type=semver,pattern={{major}}.{{minor}} type=semver,pattern={{version}} - name: Build and push Docker image uses: docker/build-push-action@v5 with: context: . push: true tags: ${{ steps.meta.outputs.tags }} labels: ${{ steps.meta.outputs.labels }}