name: CI on: push: pull_request: jobs: build: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - name: Set up JDK uses: actions/setup-java@v4 with: distribution: temurin java-version: '17' cache: maven - name: Build and test run: mvn -B verify electron-build: name: Electron packages (${{ matrix.os }}) runs-on: ${{ matrix.os }} strategy: matrix: include: - os: ubuntu-latest build-command: electron-builder --linux AppImage artifact-name: electron-linux - os: windows-latest build-command: electron-builder --win nsis artifact-name: electron-windows - os: macos-latest build-command: electron-builder --mac artifact-name: electron-macos steps: - uses: actions/checkout@v4 - name: Set up Node.js uses: actions/setup-node@v4 with: node-version: '20' cache: 'npm' cache-dependency-path: src/main/node/package-lock.json - name: Install dependencies working-directory: src/main/node run: npm ci - name: Build Electron bundles working-directory: src/main/node run: ${{ matrix.build-command }} - name: Upload Electron artifacts uses: actions/upload-artifact@v4 with: name: ${{ matrix.artifact-name }} path: src/main/node/dist/** docker: runs-on: ubuntu-latest needs: build steps: - uses: actions/checkout@v4 - name: Set up Docker Buildx uses: docker/setup-buildx-action@v3 - name: Log in to Docker Hub if: github.event_name == 'push' && github.ref == 'refs/heads/master' uses: docker/login-action@v3 with: username: kruhlmann password: ${{ secrets.DOCKER_HUB_ACCESS_TOKEN }} - name: Build and push Docker image uses: docker/build-push-action@v5 with: context: . push: ${{ github.event_name == 'push' && github.ref == 'refs/heads/master' }} tags: | kruhlmann/imgfloat-j:latest kruhlmann/imgfloat-j:${{ github.sha }}