Solr image creation #102
Workflow file for this run
This file contains hidden or 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: Solr image creation | |
| on: | |
| workflow_dispatch: | |
| push: | |
| paths: | |
| - ".github/workflows/solr.yml" | |
| - "solr/**" | |
| env: | |
| IMAGE_NAME: ghcr.io/kitconcept/solr | |
| jobs: | |
| release: | |
| runs-on: ubuntu-latest | |
| permissions: | |
| contents: read | |
| packages: write | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v3 | |
| - name: Docker meta | |
| id: meta | |
| uses: docker/metadata-action@v4 | |
| with: | |
| images: | | |
| ${{ env.IMAGE_NAME }} | |
| flavor: | |
| latest=false | |
| tags: | | |
| type=ref,event=branch | |
| type=ref,event=tag | |
| type=sha | |
| type=raw,value=latest,enable=${{ github.ref == format('refs/heads/{0}', github.event.repository.default_branch) }} | |
| - name: Set up QEMU | |
| uses: docker/setup-qemu-action@v2 | |
| - name: Set up Docker Buildx | |
| uses: docker/setup-buildx-action@v2 | |
| - name: Build amd64 image for smoke test | |
| uses: docker/build-push-action@v3 | |
| with: | |
| platforms: linux/amd64 | |
| context: solr | |
| file: solr/Dockerfile | |
| load: true | |
| tags: kitconcept-solr-smoke:local | |
| - name: Smoke test - plone core loads on startup | |
| run: | | |
| docker run -d --name solr-smoke -p 8983:8983 kitconcept-solr-smoke:local | |
| # If the schema is broken the core fails to load, but Jetty still | |
| # starts. /solr/plone/admin/ping returns 404 in that case. | |
| for i in $(seq 1 60); do | |
| if curl -fsS "http://localhost:8983/solr/plone/admin/ping?wt=json" 2>/dev/null | grep -q '"status":"OK"'; then | |
| echo "Solr plone core loaded and healthy" | |
| docker rm -f solr-smoke >/dev/null | |
| exit 0 | |
| fi | |
| sleep 2 | |
| done | |
| echo "Solr plone core failed to come up healthy after 120s" | |
| echo "--- container logs ---" | |
| docker logs solr-smoke | |
| docker rm -f solr-smoke >/dev/null | |
| exit 1 | |
| - name: Login to Container Registry | |
| uses: docker/login-action@v2 | |
| with: | |
| registry: ghcr.io | |
| username: ${{ github.actor }} | |
| password: ${{ secrets.GITHUB_TOKEN }} | |
| - name: Build and push | |
| uses: docker/build-push-action@v3 | |
| with: | |
| platforms: linux/amd64,linux/arm64 | |
| context: solr | |
| file: solr/Dockerfile | |
| push: ${{ github.event_name != 'pull_request' }} | |
| tags: ${{ steps.meta.outputs.tags }} | |
| labels: ${{ steps.meta.outputs.labels }} |