Skip to content

Fix CI working directory paths #4

Fix CI working directory paths

Fix CI working directory paths #4

Workflow file for this run

name: Linux (GTK4)
on:
push:
branches: [main]
pull_request:
branches: [main]
jobs:
test:
name: Test
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: dtolnay/rust-toolchain@stable
- name: Cache cargo
uses: actions/cache@v4
with:
path: |
~/.cargo/registry
~/.cargo/git
target
key: ${{ runner.os }}-cargo-test-${{ hashFiles('**/Cargo.lock') }}
- name: Install GTK4 + libadwaita dev dependencies
run: |
sudo apt-get update
sudo apt-get install -y libgtk-4-dev libadwaita-1-dev
- name: Test all crates
run: cargo test --workspace
build-binary:
name: Build binary (x86_64)
runs-on: ubuntu-latest
needs: test
steps:
- uses: actions/checkout@v4
- uses: dtolnay/rust-toolchain@stable
- name: Install GTK4 + libadwaita dev dependencies
run: |
sudo apt-get update
sudo apt-get install -y libgtk-4-dev libadwaita-1-dev
- name: Cache cargo
uses: actions/cache@v4
with:
path: |
~/.cargo/registry
~/.cargo/git
target
key: ${{ runner.os }}-cargo-release-${{ hashFiles('**/Cargo.lock') }}
- name: Build release binary
run: cargo build --release -p dm-gtk
- name: Strip binary
run: strip target/release/diskmap
- name: Upload binary
uses: actions/upload-artifact@v4
with:
name: diskmap-linux-x86_64
path: target/release/diskmap
build-deb:
name: Build .deb package
runs-on: ubuntu-latest
needs: test
steps:
- uses: actions/checkout@v4
- uses: dtolnay/rust-toolchain@stable
- name: Install GTK4 + libadwaita dev dependencies
run: |
sudo apt-get update
sudo apt-get install -y libgtk-4-dev libadwaita-1-dev
- name: Install cargo-deb
run: cargo install cargo-deb
- name: Cache cargo
uses: actions/cache@v4
with:
path: |
~/.cargo/registry
~/.cargo/git
target
key: ${{ runner.os }}-cargo-deb-${{ hashFiles('**/Cargo.lock') }}
- name: Build .deb
run: cargo deb -p dm-gtk
- name: Upload .deb
uses: actions/upload-artifact@v4
with:
name: diskmap-deb
path: diskmap/target/debian/*.deb
build-flatpak:
name: Build Flatpak
runs-on: ubuntu-latest
needs: test
steps:
- uses: actions/checkout@v4
- name: Install Flatpak and flatpak-builder
run: |
sudo apt-get update
sudo apt-get install -y flatpak flatpak-builder
sudo flatpak remote-add --if-not-exists flathub https://dl.flathub.org/repo/flathub.flatpakrepo
sudo flatpak install -y flathub org.gnome.Platform//46 org.gnome.Sdk//46
sudo flatpak install -y flathub org.freedesktop.Sdk.Extension.rust-stable//24.08
- name: Build Flatpak
working-directory: ./packaging
run: |
flatpak-builder --force-clean --repo=repo builddir com.diskmap.app.yml
flatpak build-bundle repo diskmap.flatpak com.diskmap.app
- name: Upload Flatpak
uses: actions/upload-artifact@v4
with:
name: diskmap-flatpak
path: diskmap/packaging/diskmap.flatpak
release:
name: Create Release
runs-on: ubuntu-latest
needs: [build-binary, build-deb, build-flatpak]
if: github.ref == 'refs/heads/main' && github.event_name == 'push'
permissions:
contents: write
steps:
- uses: actions/download-artifact@v4
with:
path: artifacts
- name: List artifacts
run: find artifacts -type f
- name: Create GitHub Release
uses: softprops/action-gh-release@v2
with:
tag_name: build-${{ github.run_number }}
name: Build ${{ github.run_number }}
draft: true
files: |
artifacts/diskmap-linux-x86_64/diskmap
artifacts/diskmap-deb/*.deb
artifacts/diskmap-flatpak/diskmap.flatpak