Weekly Check Dist #84
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Weekly Check Dist | |
on: | |
schedule: | |
- cron: '42 5 * * 1' | |
workflow_dispatch: | |
concurrency: | |
group: Weekly Check Dist | |
cancel-in-progress: true | |
jobs: | |
make_dist: | |
name: Make Dist | |
runs-on: ubuntu-latest | |
strategy: | |
fail-fast: false | |
matrix: | |
source: [ { name: 'headless', | |
conf: '--enable-headlessui', | |
deps: '' }, | |
{ name: 'sdl2', | |
conf: '--enable-sdl2ui', | |
deps: 'libsdl2-dev libsdl2-image-dev' }, | |
{ name: 'gtk3', | |
conf: '--enable-gtk3ui', | |
deps: 'libgtk-3-dev libglew-dev' } ] | |
target: [ { name: 'headless', | |
conf: '--enable-headlessui', | |
deps: '' }, | |
{ name: 'sdl2', | |
conf: '--enable-sdl2ui', | |
deps: 'libsdl2-dev libsdl2-image-dev' }, | |
{ name: 'gtk3', | |
conf: '--enable-gtk3ui', | |
deps: 'libgtk-3-dev libglew-dev' } ] | |
steps: | |
- name: Checkout Source | |
uses: actions/checkout@v3 | |
- name: Install Source Dependencies | |
shell: bash | |
run: | | |
sudo apt update | |
sudo apt install -y autoconf automake build-essential byacc dos2unix \ | |
flex xa65 libasound2-dev libpulse-dev \ | |
${{ matrix.source.deps }} | |
- name: Configure Dist | |
shell: bash | |
run: | | |
cd vice | |
./autogen.sh | |
./configure --enable-option-checking=fatal ${{ matrix.source.conf }} \ | |
--with-resid --disable-html-docs --disable-pdf-docs | |
- name: Make Dist | |
id: make_dist | |
shell: bash | |
run: | | |
cd vice | |
make -j2 -s --no-print-directory dist | |
echo "tarball=$(basename vice-*.tar.gz)" >> $GITHUB_OUTPUT | |
echo "tardir=$(basename -s .tar.gz vice-*.tar.gz)" >> $GITHUB_OUTPUT | |
echo "artifact_name=$(basename -s .tar.gz vice-*.tar.gz)-${{ matrix.source.name }}.tar.gz" >> $GITHUB_OUTPUT | |
- name: Upload Artifact | |
uses: actions/upload-artifact@v3 | |
# This makes sure we only upload artifacts for the different configure | |
# options used when creating the tarballs, not every combination of | |
# source and target: | |
if: matrix.source.name == matrix.target.name | |
with: | |
name: ${{ steps.make_dist.outputs.artifact_name }} | |
path: vice/${{ steps.make_dist.outputs.tarball }} | |
retention-days: 7 | |
- name: Install Target Dependencies | |
shell: bash | |
run: | | |
sudo apt install -y ${{ matrix.target.deps }} | |
sudo apt install -y texinfo texlive-fonts-recommended texlive-latex-extra | |
- name: Configure Target Build | |
id: configure_target | |
shell: bash | |
run: | | |
BUILDDIR=${{ matrix.target.name }}-build | |
echo "builddir=${BUILDDIR}" >> $GITHUB_OUTPUT | |
mkdir ${BUILDDIR} && cd ${BUILDDIR} | |
tar -xzf ../vice/${{ steps.make_dist.outputs.tarball }} | |
cd ${{ steps.make_dist.outputs.tardir }} | |
./configure --enable-option-checking=fatal ${{matrix.target.conf }} \ | |
--with-resid --with-fastsid --enable-html-docs --enable-pdf-docs | |
- name: Make Target Build | |
shell: bash | |
run: | | |
cd ${{ steps.configure_target.outputs.builddir }} | |
cd ${{ steps.make_dist.outputs.tardir }} | |
make -j2 -s --no-print-directory | |
- name: Install Target Build | |
shell: bash | |
run: | | |
INSTALLDIR=${{ matrix.target.name }}-install | |
mkdir ${INSTALLDIR} | |
cd ${{ steps.configure_target.outputs.builddir }} | |
cd ${{ steps.make_dist.outputs.tardir }} | |
make -j2 -s --no-print-directory DESTDIR="../../${INSTALLDIR}" install | |
- name: Report Failure | |
env: | |
IRC_PASS: ${{ secrets.IRC_PASS }} | |
if: ${{ failure() }} | |
shell: bash | |
run: | | |
./vice/build/github-actions/irc-message.sh "make dist => make failed for ${{ matrix.source.name }} => ${{ matrix.target.name }}" | |
diff_dists: | |
name: Check dist tarballs for content differences | |
runs-on: ubuntu-latest | |
needs: make_dist | |
strategy: | |
fail-fast: true | |
steps: | |
- name: Checkout Source | |
uses: actions/checkout@v3 | |
- name: Download Dist Tarballs | |
uses: actions/download-artifact@v3 | |
# we don't specify an artifact name or download path so we download | |
# all artifacts to the current working directory | |
- name: Check Dist Tarballs | |
shell: bash | |
run: vice/build/github-actions/compare-dists.sh |