name: SD2PSXtd on: push: schedule: - cron: "0 6 * * *" jobs: sd2psxtd: name: SD2PSXtd runs-on: ubuntu-latest strategy: matrix: target: [SD2PSX, PMC+] debug: [ON, OFF] include: - debug: ON ext: -debug.uf2 delay: 3 - debug: OFF ext: .uf2 delay: 0 - target: SD2PSX filename: sd2psx - target: PMC+ filename: pmc+ steps: - name: Compare Versions run: | GITHUB_REPO="sd2psXtd/firmware" 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/sd2psXtd" 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", "sd2psXtd": "sd2psXtd new: $GITHUB_VERSION"}' fi - name: Installing dependencies & Cloning repository run: | apt-get update apt-get install -y \ git \ cmake \ clangd \ ninja-build \ gcc-arm-none-eabi \ libnewlib-arm-none-eabi \ libstdc++-arm-none-eabi-newlib \ python3 \ python3-venv git clone --recursive https://github.com/sd2psXtd/firmware.git ${{ gitea.workspace }} export PICO_SDK_PATH=$PWD/ext/pico-sdk export PICO_TOOLCHAIN_PATH=/usr cd ${{ gitea.workspace }} git fetch origin --tags --force TAG=$(git describe --tags --exact-match HEAD --exclude=latest --exclude=nightly) || true echo "SD2PSX_VERSION=${TAG}" >> $GITEA_ENV echo "SD2PSX_RLS_TAG=latest" >> $GITEA_ENV echo "${TAG}" - name: Build the firmware run: | cd ${{ gitea.workspace }} cmake -B build -DCMAKE_BUILD_TYPE=${{ env.BUILD_TYPE }} -DDEBUG_USB_UART:BOOL=${{ matrix.debug }} -DVARIANT:STRING=${{ matrix.target }} -DDEBUG_STARTUP_DELAY=${{ matrix.delay }} -G "Unix Makefiles" cmake --build build - name: Move Files run: | mkdir -p ${{ gitea.workspace }}/output mv ${{ gitea.workspace }}/*/*.uf2 ${{ gitea.workspace }}/output - name: Upload artifacts uses: actions/upload-artifact@v3 with: name: ${{ matrix.filename }}${{ matrix.ext }} path: | ${{ gitea.workspace }}/output/${{ matrix.filename }}${{ matrix.ext }} - name: Upload Release uses: akkuman/gitea-release-action@v1 with: name: "${{ env.SD2PSX_VERSION }}" tag_name: "${{ env.SD2PSX_VERSION }}" prerelease: false files: |- ${{ gitea.workspace }}/output/${{ matrix.filename }}${{ matrix.ext }}