name: Build Docker image and publish permissions: {} on: push: branches: [ main ] jobs: push_to_registry: name: Push Docker image to Docker Hub runs-on: ubuntu-latest steps: - name: Check out the repo uses: actions/checkout@v6 with: persist-credentials: false - 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: mozilla/blurts-server tags: | type=semver,pattern={{raw}} type=raw,value={{sha}},event=tag - name: Create version.json run: | echo "{\"commit\":\"$GITHUB_SHA\",\"version\":\"$GITHUB_REF_NAME\",\"source\":\"https://github.com/$GITHUB_REPOSITORY\",\"build\":\"$GITHUB_RUN_ID\"}" > version.json - name: Check Docker Version run: docker --version - name: Install Latest Docker run: | curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add - sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" sudo apt-get update sudo apt-get install docker-ce - name: Build Docker image env: UPLOAD_SENTRY_SOURCEMAPS: true SENTRY_AUTH_TOKEN: ${{ secrets.SENTRY_AUTH_TOKEN }} SENTRY_RELEASE: ${{ github.ref_name }} NEXT_PUBLIC_SENTRY_DSN: ${{ secrets.SENTRY_DSN }} run: | docker build --tag blurts-server \ --build-arg SENTRY_RELEASE="$SENTRY_RELEASE" \ --build-arg NEXT_PUBLIC_SENTRY_DSN="$NEXT_PUBLIC_SENTRY_DSN" \ --secret id=SENTRY_AUTH_TOKEN \ . - name: Deploy to Dockerhub env: DOCKERHUB_REPO: ${{ env.DOCKERHUB_REPO }} TAGS: ${{ steps.meta.outputs.tags }} run: | # deploy main docker tag blurts-server $TAGS docker push $TAGS