name: Docker Deployment on: # release: # types: [published] push: tags: - docker* workflow_dispatch: permissions: contents: read env: LATEST_IMAGE_NODE_MAJOR_VERSION: 22 jobs: run-docker-build-and-test: uses: ./.github/workflows/test.yaml with: rebuild-docker-images-call: true deploy: name: Build and Push Docker needs: run-docker-build-and-test runs-on: ubuntu-latest strategy: fail-fast: true matrix: nodeMajorVersion: [ 14, 16, 18, 20, 22 ] steps: - name: Download images artifact - node${{ matrix.nodeMajorVersion }} uses: actions/download-artifact@cc203385981b70ca67e1cc392babf9cc229d5806 # v4 with: name: electron-builder-all-${{ matrix.nodeMajorVersion }} path: ${{ runner.temp }} - name: Load all images run: docker image load --input ${{ runner.temp }}/electron-builder-all-${{ matrix.nodeMajorVersion }}.tar - name: Tag LTS (${{ env.LATEST_IMAGE_NODE_MAJOR_VERSION }}) images for electron-builder latest/wine/wine-chrome/wine-mono if: ${{ matrix.nodeMajorVersion == env.LATEST_IMAGE_NODE_MAJOR_VERSION }} run: | docker image tag electronuserland/builder:${{ env.LATEST_IMAGE_NODE_MAJOR_VERSION }} electronuserland/builder:latest docker image tag electronuserland/builder:${{ env.LATEST_IMAGE_NODE_MAJOR_VERSION }}-wine electronuserland/builder:wine docker image tag electronuserland/builder:${{ env.LATEST_IMAGE_NODE_MAJOR_VERSION }}-wine-mono electronuserland/builder:wine-mono docker image tag electronuserland/builder:${{ env.LATEST_IMAGE_NODE_MAJOR_VERSION }}-wine-chrome electronuserland/builder:wine-chrome - name: List all images and tags run: docker image ls -a - name: Login to DockerHub uses: docker/login-action@74a5d142397b4f367a81961eba4e8cd7edddf772 # v3 with: username: ${{ secrets.DOCKERHUB_USERNAME }} password: ${{ secrets.DOCKERHUB_TOKEN }} - name: Push all Docker images (workflow_dispatch test) if: github.event_name == 'workflow_dispatch' run: echo "TESTING step logic. (this would normally trigger docker push)" - name: Push all Docker images if: github.event_name != 'workflow_dispatch' run: docker image push --all-tags electronuserland/builder