Speed up build process by caching artifacts

because the pyoxydizer isn't updated that often, why build it every time and waste 20 min. This change caches the built artifacts, so the pyoxydizer step runs in matter of seconds. Also removed release job, since it has nothing to do in here. Every component has their build job, but release should be it's own dedicated job, since it relies on many parts.
This commit is contained in:
suika 2021-05-08 02:31:03 +02:00
parent 00dcb6ad83
commit b6f967c767
2 changed files with 42 additions and 55 deletions

View File

@ -0,0 +1,23 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>CFBundleDisplayName</key>
<string>client</string>
<key>CFBundleExecutable</key>
<string>MacOS/client</string>
<key>CFBundleIconFile</key>
<string>icon.icns</string>
<key>CFBundleIdentifier</key>
<string>client</string>
<key>CFBundleInfoDictionaryVersion</key>
<string>6.0</string>
<key>CFBundleName</key>
<string>client</string>
<key>CFBundlePackageType</key>
<string>APPL</string>
<key>CFBundleShortVersionString</key>
<string>0.0.0</string>
<key>NSHighResolutionCapable</key>
<string>True</string></dict>
</plist>

View File

@ -16,9 +16,23 @@ jobs:
- uses: actions-rs/toolchain@v1 - uses: actions-rs/toolchain@v1
with: with:
toolchain: stable toolchain: stable
- name: Rust Cache - name: Cargo Cache
uses: Swatinem/rust-cache@v1.2.0 uses: actions/cache@v2
- name: rust-cargo with:
path: ~/.cargo
key: ${{ runner.os }}-cargo-${{ hashFiles('Cargo.toml') }}
restore-keys: |
${{ runner.os }}-cargo-${{ hashFiles('Cargo.toml') }}
${{ runner.os }}-cargo
- name: Cargo Artifacts Cache
uses: actions/cache@v2
with:
path: target
key: ${{ runner.os }}-cargo-target-${{ hashFiles('Cargo.toml') }}
restore-keys: |
${{ runner.os }}-cargo-target-${{ hashFiles('Cargo.toml') }}
${{ runner.os }}-cargo-target
- name: Install PyOxidizer
uses: actions-rs/cargo@v1.0.3 uses: actions-rs/cargo@v1.0.3
with: with:
command: install command: install
@ -35,34 +49,10 @@ jobs:
mkdir -p "Hydrus Network.app/Contents/Resources" mkdir -p "Hydrus Network.app/Contents/Resources"
mkdir -p "Hydrus Network.app/Contents/Frameworks" mkdir -p "Hydrus Network.app/Contents/Frameworks"
mv install/static/icon.icns "Hydrus Network.app/Contents/Resources/icon.icns" mv install/static/icon.icns "Hydrus Network.app/Contents/Resources/icon.icns"
cat > "Hydrus Network.app/Contents/Info.plist" <<EOF cp install/static/build_files/macos/Info.plist "Hydrus Network.app/Contents/Info.plist"
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>CFBundleDisplayName</key>
<string>client</string>
<key>CFBundleExecutable</key>
<string>MacOS/client</string>
<key>CFBundleIconFile</key>
<string>icon.icns</string>
<key>CFBundleIdentifier</key>
<string>client</string>
<key>CFBundleInfoDictionaryVersion</key>
<string>6.0</string>
<key>CFBundleName</key>
<string>client</string>
<key>CFBundlePackageType</key>
<string>APPL</string>
<key>CFBundleShortVersionString</key>
<string>0.0.0</string>
<key>NSHighResolutionCapable</key>
<string>True</string></dict>
</plist>
EOF
cp install/static/build_files/macos/ReadMeFirst.rtf ./ReadMeFirst.rtf cp install/static/build_files/macos/ReadMeFirst.rtf ./ReadMeFirst.rtf
ln -s /Applications ./Applications
cp install/static/build_files/macos/running_from_app "install/running_from_app" cp install/static/build_files/macos/running_from_app "install/running_from_app"
ln -s /Applications ./Applications
mv install/* "Hydrus Network.app/Contents/MacOS/" mv install/* "Hydrus Network.app/Contents/MacOS/"
rm -rf install rm -rf install
cd $GITHUB_WORKSPACE cd $GITHUB_WORKSPACE
@ -76,29 +66,3 @@ jobs:
path: HydrusNetwork.dmg path: HydrusNetwork.dmg
if-no-files-found: error if-no-files-found: error
retention-days: 2 retention-days: 2
create-release:
name: Create Release Entry
runs-on: ubuntu-20.04
needs: [build-macos]
steps:
- name: Checkout code
uses: actions/checkout@v2
- name: Get All Artifacts
uses: actions/download-artifact@v2
- name: Extract version metadata
id: meta
run: |
echo "::set-output name=version::${GITHUB_REF##*/}"
echo "::set-output name=version_short::${GITHUB_REF##*/v}"
- name: Rename Files
run: |
mv MacOS-DMG/HydrusNetwork.dmg Hydrus.Network.${{ steps.meta.outputs.version_short }}.-.macOS.-.App.dmg
- name: Release new
uses: softprops/action-gh-release@v1
if: startsWith(github.ref, 'refs/tags/')
with:
files: |
Hydrus.Network.${{ steps.meta.outputs.version_short }}.-.macOS.-.App.dmg
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}