name: Docker on: release: types: [published] jobs: config: runs-on: "ubuntu-latest" outputs: has-secrets: ${{ steps.check.outputs.has-secrets }} steps: - name: "Check for secrets" id: check shell: bash run: | if [ -n "${{ (secrets.DOCKERHUB_USER != '' && secrets.DOCKERHUB_TOKEN != '') || '' }}" ]; then echo "has-secrets=1" >> "$GITHUB_OUTPUT" fi docker-release: needs: config if: needs.config.outputs.has-secrets name: docker-release runs-on: ubuntu-latest strategy: matrix: build_preset: ["dev", "lean", "py310", "websocket", "dockerize"] platform: ["linux/amd64", "linux/arm64"] exclude: # disabling because slow! no python wheels for arm/py39 and # QEMU is slow! - build_preset: "dev" platform: "linux/arm64" - build_preset: "lean" platform: "linux/arm64" fail-fast: false steps: - name: "Checkout ${{ github.ref }} ( ${{ github.sha }} )" uses: actions/checkout@v4 with: persist-credentials: false submodules: recursive ref: ${{ github.ref }} - name: Set up QEMU uses: docker/setup-qemu-action@v3 - name: Set up Docker Buildx uses: docker/setup-buildx-action@v3 - name: Build Docker Image env: DOCKERHUB_USER: ${{ secrets.DOCKERHUB_USER }} DOCKERHUB_TOKEN: ${{ secrets.DOCKERHUB_TOKEN }} run: | GITHUB_RELEASE_TAG_NAME="${{ github.event.release.tag_name }}" pip install click ./scripts/build_docker.py ${{ matrix.build_preset }} release --platform ${{ matrix.platform }}