name: Build et Push Docker Dev Image on: push: branches: - dev jobs: build-binaries: runs-on: ubuntu-latest strategy: matrix: include: - target: x86_64-unknown-linux-musl platform: linux/amd64 name: github-ntfy-amd64 - target: aarch64-unknown-linux-musl platform: linux/arm64 name: github-ntfy-arm64 - target: armv7-unknown-linux-musleabihf platform: linux/arm/v7 name: github-ntfy-armv7 steps: - name: Checkout code uses: actions/checkout@v4 - name: Installer Rust uses: actions-rs/toolchain@v1 with: toolchain: stable target: ${{ matrix.target }} override: true - name: Installer cross run: cargo install cross - name: Construire avec cross run: | cross build --release --target ${{ matrix.target }} - name: Préparer le binaire run: | mkdir -p release cp target/${{ matrix.target }}/release/github-ntfy release/${{ matrix.name }} - name: Upload binaire comme artifact uses: actions/upload-artifact@v4 with: name: ${{ matrix.name }} path: release/${{ matrix.name }} docker-build-push: needs: [build-binaries] runs-on: ubuntu-latest steps: - name: Checkout code uses: actions/checkout@v4 - name: Configurer QEMU uses: docker/setup-qemu-action@v3 with: platforms: arm64,arm/v7 - name: Configurer Docker Buildx uses: docker/setup-buildx-action@v3 - name: Login Docker Hub uses: docker/login-action@v3 with: username: ${{ secrets.DOCKER_USERNAME }} password: ${{ secrets.DOCKER_PASSWORD }} - name: Télécharger tous les binaires uses: actions/download-artifact@v4 with: path: binaries - name: Préparer les binaires pour Docker run: | mkdir -p binaries-docker cp binaries/github-ntfy-amd64/github-ntfy-amd64 binaries-docker/ cp binaries/github-ntfy-arm64/github-ntfy-arm64 binaries-docker/ cp binaries/github-ntfy-armv7/github-ntfy-armv7 binaries-docker/ chmod +x binaries-docker/* ls -la binaries-docker/ # Construire et pousser l'image Docker dev - name: Construire et pousser l'image Docker dev uses: docker/build-push-action@v6 with: context: . push: true platforms: linux/amd64,linux/arm64,linux/arm/v7 tags: ${{ secrets.DOCKER_USERNAME }}/github-ntfy:dev file: Dockerfile.multi