name: Build on: push: pull_request: release: types: - created workflow_dispatch: jobs: build-menu: runs-on: ubuntu-latest permissions: contents: write packages: write steps: - uses: actions/checkout@v4 with: submodules: recursive - name: Login to GitHub Container Registry uses: docker/login-action@v3 with: registry: ghcr.io username: ${{ github.repository_owner }} password: ${{ secrets.GITHUB_TOKEN }} - name: Build N64FlashcartMenu ROM uses: devcontainers/ci@v0.3 with: imageName: ghcr.io/polprzewodnikowy/n64flashcartmenu-devcontainer cacheFrom: ghcr.io/polprzewodnikowy/n64flashcartmenu-devcontainer push: ${{ github.repository_owner == 'Polprzewodnikowy' && 'filter' || 'never' }} refFilterForPush: refs/heads/main runCmd: | make all -j env: FLAGS: -DNDEBUG - name: Upload artifact (Standard ROM) uses: actions/upload-artifact@v4 with: name: N64FlashcartMenu path: | ./output/N64FlashcartMenu.n64 ./build/N64FlashcartMenu.elf - name: Upload artifact (64drive version) uses: actions/upload-artifact@v4 with: name: 64drive path: ./output/menu.bin - name: Upload artifact (ED64 version) uses: actions/upload-artifact@v4 with: name: ED64 path: ./output/OS64.v64 - name: Upload artifact (ED64P version) uses: actions/upload-artifact@v4 with: name: ED64P path: ./output/OS64P.v64 - name: Upload artifact (SC64 version) uses: actions/upload-artifact@v4 with: name: SC64 path: ./output/sc64menu.n64 - name: Upload rolling release uses: softprops/action-gh-release@v2 if: github.ref == 'refs/heads/main' with: name: Rolling release body: Rolling release built from latest commit on `main` branch. tag_name: 'rolling_release' make_latest: true files: | ./output/N64FlashcartMenu.n64 ./output/menu.bin # ./output/OS64.v64 # ./output/OS64P.v64 ./output/sc64menu.n64 continue-on-error: true - name: Upload dev rolling release uses: softprops/action-gh-release@v2 if: github.ref == 'refs/heads/develop' with: name: 'Rolling pre-release' body: Experimental pre-release built from latest commit on `develop` branch. target_commitish: develop tag_name: 'pre-release_V${{ github.run_number }}' prerelease: true files: | ./output/N64FlashcartMenu.n64 ./output/menu.bin ./output/OS64.v64 ./output/OS64P.v64 ./output/sc64menu.n64 continue-on-error: true generate-docs: runs-on: ubuntu-latest permissions: contents: write steps: - uses: actions/checkout@v4 - name: Run Doxygen uses: mattnotmitt/doxygen-action@1.9.5 with: doxyfile-path: './Doxyfile' - name: Deploy to GitHub Pages uses: peaceiris/actions-gh-pages@v4 if: github.ref == 'refs/heads/main' with: github_token: ${{ secrets.GITHUB_TOKEN }} publish_dir: ./output/docs cname: menu.summercart64.dev