Create a snapshot release #38
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: CI | |
on: | |
workflow_dispatch: | |
permissions: | |
contents: write | |
pull-requests: write | |
jobs: | |
build: | |
name: Build | |
runs-on: ubuntu-22.04 | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Install Nix | |
uses: DeterminateSystems/nix-installer-action@main | |
- uses: DeterminateSystems/magic-nix-cache-action@main | |
- name: Enter shell with needed dependencies | |
run: | | |
nix shell --inputs-from . nixpkgs#jq nixpkgs#p7zip nixpkgs#git nixpkgs#findutils | |
- name: Update Doom2D related inputs | |
run: | | |
nix flake update d2df-sdl d2df-editor doom2df-res | |
D2DF_REV=$(nix flake metadata . --json 2>/dev/null | jq --raw-output '.locks.nodes."d2df-sdl".locked.rev') | |
EDITOR_REV=$(nix flake metadata . --json 2>/dev/null | jq --raw-output '.locks.nodes."d2df-editor".locked.rev') | |
RES_REV=$(nix flake metadata . --json 2>/dev/null | jq --raw-output '.locks.nodes."doom2df-res".locked.rev') | |
D2DF_PATH=$(nix eval '.#dfInputs' --json 2>/dev/null | jq --raw-output '."x86_64-linux"."d2df-sdl"') | |
EDITOR_PATH=$(nix eval '.#dfInputs' --json 2>/dev/null | jq --raw-output '."x86_64-linux"."d2df-editor"') | |
RES_PATH=$(nix eval '.#dfInputs' --json 2>/dev/null | jq --raw-output '."x86_64-linux"."doom2df-res"') | |
D2DF_LAST_COMMIT_DATE=$(git log --git-dir $D2DF_PATH/.git -1 --format="%ad" --date=iso) | |
EDITOR_LAST_COMMIT_DATE=$(git log --git-dir $EDITOR_PATH/.git -1 --format="%ad" --date=iso) | |
RES_LAST_COMMIT_DATE=$(git log --git-dir $RES_PATH/.git" -1 --format="%ad" --date=iso) | |
echo "D2DF_REV=$D2DF_REV" >> "$GITHUB_ENV" | |
echo "EDITOR_REV=$RES_REV" >> "$GITHUB_ENV" | |
echo "RES_REV=$RES_REV" >> "$GITHUB_ENV" | |
echo "D2DF_LAST_COMMIT_DATE=\"$D2DF_LAST_COMMIT_DATE\"" >> "$GITHUB_ENV" | |
echo "EDITOR_LAST_COMMIT_DATE=\"$EDITOR_LAST_COMMIT_DATE\"" >> "$GITHUB_ENV" | |
echo "RES_LAST_COMMIT_DATE=\"$RES_LAST_COMMIT_DATE\"" >> "$GITHUB_ENV" | |
printf 'This build has the following inputs:\nd2df-sdl: %s\ndoom2d-res: %s\nd2df-editor: %s' $D2DF_REV $RES_REV $EDITOR_REV > release_body | |
- name: Build debug APK | |
run: | | |
nix build .#legacyPackages.x86_64-linux.android.doom2df-sdl2_mixer-apk | |
cp result doom2df-android.apk | |
- uses: actions/upload-artifact@v4 | |
with: | |
name: doom2df-android | |
path: result | |
if-no-files-found: error | |
- name: Build Windows 32-bit ZIP bundle | |
run: | | |
mkdir -p doom2df-win32 build/assets build/bin | |
nix build .#legacyPackages.x86_64-linux.mingw.byArch.mingw32.gameAssetsPath | |
cp result/* build/assets/ | |
nix build .#legacyPackages.x86_64-linux.mingw.byArch.mingw32.gameExecutablePath | |
cp result/* build/bin/ | |
find . -type f -iname 'doom2df*' -exec touch -d "${{env.D2DF_LAST_COMMIT_DATE}}" {} \; | |
find . -type f -iname 'editor*' -exec touch -d "${{env.EDITOR_LAST_COMMIT_DATE}}" {} \; | |
find . -type f -exec touch -d "${{env.RES_LAST_COMMIT_DATE}}"" {} \; | |
cp build/bin/* doom2df-win32 | |
cp build/assets/* doom2df-win32 | |
rm -rf build | |
7z a -mtm -stl -ssp -tzip doom2df-win32.zip -w doom2df-win32/. | |
rm doom2df-win32/ | |
- uses: actions/upload-artifact@v4 | |
with: | |
name: doom2df-win32 | |
path: doom2df-win32.zip | |
if-no-files-found: error | |
- uses: ncipollo/release-action@v1 | |
if: ${{ github.event_name == 'push' || github.event_name == 'workflow_dispatch'}} | |
with: | |
artifacts: doom2df-win32.zip, doom2df-android.apk | |
token: ${{ secrets.GITHUB_TOKEN }} | |
name: Doom2D Forever builds (latest commit) | |
bodyFile: release_body | |
tag: doom2dforever | |
allowUpdates: true | |
artifactErrorsFailBuild: true | |
prerelease: true | |
replacesArtifacts: true |