name: nightly-linux64 # on: # push: # paths-ignore: # - '**/README.md' # pull_request: # paths-ignore: # - '**/README.md' # on: # workflow_dispatch: # inputs: # release: # description: 'release' # required: true # default: 'nightly' # concurrency: # group: ${{ github.workflow }}-${{ github.ref }} # cancel-in-progress: true # on: # schedule: # - cron: "0 6 * * *" on: schedule: - cron: "0 6 * * *" workflow_dispatch: inputs: release: description: 'release' required: true default: 'nightly' env: ccache: ccache jobs: build-nightly: runs-on: ubuntu-24.04 if: github.repository == 'openframeworks/openframeworks' && github.event_name == 'push' && (startsWith(github.ref, 'refs/tags/') || github.ref == 'refs/heads/master' || github.ref == 'refs/heads/bleeding') strategy: matrix: cfg: - {target: linux64, libs: 64gcc6} env: TARGET: ${{matrix.cfg.target}} steps: - name: Determine Release id: vars shell: bash run: | if [[ "${{ github.ref }}" == refs/tags/* ]]; then echo "RELEASE=${{ github.ref_name }}" >> $GITHUB_ENV elif [[ "${{ github.ref }}" == "refs/heads/master" ]]; then echo "RELEASE=nightly" >> $GITHUB_ENV elif [[ "${{ github.ref }}" == "refs/heads/bleeding" ]]; then echo "RELEASE=latest" >> $GITHUB_ENV else echo "RELEASE=latest" >> $GITHUB_ENV fi - name: Install libunwind run: sudo apt-get install libunwind-dev - name: Cache Packages uses: awalsh128/cache-apt-pkgs-action@latest with: packages: aptitude aptitude-common libboost-iostreams1.83.0 libcwidget4 libsigc++-2.0-0v5 libxapian30 fonts-wine{a} libasound2-plugins{a} libcapi20-3t64{a} libosmesa6{a} libpcsclite1{a} libspeexdsp1{a} libwine{a} libxkbregistry0{a} libz-mingw-w64{a} wine{a} wine64 make curl libjack-jackd2-0 libjack-jackd2-dev freeglut3-dev libasound2-dev libxmu-dev libxxf86vm-dev g++ libgl1-mesa-dev libglu1-mesa-dev libraw1394-dev libudev-dev libdrm-dev libglew-dev libopenal-dev libsndfile1-dev libfreeimage-dev libcairo2-dev libfreetype6-dev libssl-dev libpulse-dev libusb-1.0-0-dev libgtk2.0-dev libopencv-dev libassimp-dev librtaudio-dev gdb libglfw3-dev liburiparser-dev libcurl4-openssl-dev libpugixml-dev libgconf-2-4 libgtk2.0-0 libpoco-dev libxcursor-dev libxi-dev libxinerama-dev libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev gstreamer1.0-libav gstreamer1.0-pulseaudio gstreamer1.0-x gstreamer1.0-plugins-bad gstreamer1.0-alsa gstreamer1.0-plugins-base gstreamer1.0-plugins-good # libunwind-dev wget2 version: 1.0 - uses: actions/checkout@v4 - name: ccache uses: hendrikmuhs/ccache-action@v1.2.14 with: key: ${{ matrix.cfg.target }} - name: Install dependencies run: ./scripts/ci/$TARGET/install.sh; - name: update submodules run: ./scripts/dev/init_submodules.sh - name: Download libs run: ./scripts/linux/download_libs.sh -a ${{matrix.cfg.libs}}; - name: Create Package run: scripts/ci/package_builds.sh ${{ github.event.inputs.release }}; id: createpackage - name: List output directory run: ls -lah out/ - name: Upload GitHub Artefact zip run: | tar -cjf out/manual-mega_artefact.tar.bz2 -C out $(echo ${{ steps.createpackage.outputs.FILES_OUT }} | tr ' ' '\n' | sed 's|^out/||') - name: Upload binaries as Artefact uses: actions/upload-artifact@v4 with: name: openFrameworks-all-artefact-${{ env.TARGET }}-${{ env.RELEASE }} path: out/nightly-mega_artefact.tar.bz2 retention-days: 7 - name: Update Release arm64 uses: softprops/action-gh-release@v2.1.0 with: token: ${{ secrets.GITHUB_TOKEN }} tag_name: ${{ env.RELEASE }} files: ${{ steps.createpackage.outputs.FILES_OUT }}