name: build on: push: schedule: - cron: "0 6 * * *" jobs: build: strategy: matrix: hw_version: [hw1] br_config: [playstation] runs-on: ubuntu-latest container: image: ghcr.io/darthcloud/idf-blueretro:v5.5.0_2024-12-02 outputs: br_version: ${{ env.br_version }} steps: - name: Compare Versions run: | GITHUB_REPO="darthcloud/BlueRetro" GITHUB_VERSION=$(curl -s "https://api.github.com/repos/$GITHUB_REPO/releases/latest" | jq -r .tag_name) echo "GitHub Latest Version: $GITHUB_VERSION" echo "GITHUB_VERSION=$GITHUB_VERSION" >> $GITEA_ENV GITEA_URL="https://git.sthope.dev" GITEA_REPO="sthope/blueretro" GITEA_VERSION=$(curl -s "$GITEA_URL/api/v1/repos/$GITEA_REPO/releases/latest" -H 'accept: application/json' | jq -r '.tag_name') echo "Gitea Latest Version: $GITEA_VERSION" echo "GITEA_VERSION=$GITEA_VERSION" >> $GITEA_ENV if [ "$(printf '%s\n' "$GITEA_VERSION" "$GITHUB_VERSION" | sort -V | head -n1)" = "$GITHUB_VERSION" ]; then echo "❌❌GitHub release is older or the same. Stopping workflow.❌❌" exit 1 else echo "✅✅GitHub release is newer. Continuing workflow.✅✅" PB_TOKEN="${{ secrets.PB_TOKEN }}" curl -u ${PB_TOKEN}: -X POST https://api.pushbullet.com/v2/pushes \ --header 'Content-Type: application/json' \ --data-binary '{"type": "note", "title": "Title", "Blueretro": "Blueretro new: $GITHUB_VERSION"}' fi - name: Clone Repository run: | git clone --recursive https://github.com/darthcloud/BlueRetro.git ${{ github.workspace }} cd ${{ github.workspace }} echo "BLUERETRO_VERSION=${GITHUB_VERSION}" >> $GITEA_ENV echo ${BLUERETRO_VERSION} - name: Build with ESP-IDF shell: bash run: | . $IDF_PATH/export.sh echo "br_version=$(git describe --always --tags --dirty)" >> $GITHUB_ENV rm -fr build echo "$(git describe --always --tags --dirty) ${{ matrix.hw_version }} ${{ matrix.br_config }}" | cut -c -31 > version.txt cat version.txt cp configs/${{ matrix.hw_version }}/${{ matrix.br_config }} sdkconfig BR_HW=_${{ matrix.hw_version }} BR_SYS=_${{ matrix.br_config }} idf.py reconfigure build - name: Copy OTA initial binary run: | mkdir -p build/ota mv build/ota_data_initial.bin build/ota/ - name: Upload artifact uses: actions/upload-artifact@v3 with: name: ${{ matrix.hw_version }}_${{ matrix.br_config }} path: | build/partition_table/partition-table.bin build/bootloader/bootloader.bin build/ota/ota_data_initial.bin build/BlueRetro*.bin if-no-files-found: error - name: Download all artifacts uses: actions/download-artifact@v3 - name: Download all artifacts run: | ls -l /workspace/sthope/blueretro/ mv /workspace/sthope/blueretro/hw1_playstation /workspace/sthope/blueretro/hw1_playstation.zip mkdir -p merged && mv hw1* merged/ - name: Upload Release uses: akkuman/gitea-release-action@v1 with: tag_name: "${{ env.BLUERETRO_VERSION }}" name: "${{ env.BLUERETRO_VERSION }}" prerelease: false files: |- merged/**