Skip to content
This repository has been archived by the owner on Aug 9, 2024. It is now read-only.

Add Github Actions #162

Open
wants to merge 144 commits into
base: master
Choose a base branch
from
Open
Changes from all commits
Commits
Show all changes
144 commits
Select commit Hold shift + click to select a range
dd4acf1
Create rust.yml
the-broz Jun 4, 2024
c91d4b7
Update rust.yml
the-broz Jun 4, 2024
034bfc6
Update rust.yml
the-broz Jun 4, 2024
7db235f
Update rust.yml
the-broz Jun 4, 2024
1560f9a
Update rust.yml
the-broz Jun 4, 2024
5838178
Update rust.yml
the-broz Jun 4, 2024
78355c1
Update rust.yml
the-broz Jun 4, 2024
7d7e70c
Update rust.yml
the-broz Jun 4, 2024
ddcb34b
Update rust.yml
the-broz Jun 4, 2024
5e0aa72
Update rust.yml
the-broz Jun 4, 2024
ff709a5
Update rust.yml
the-broz Jun 4, 2024
7da8c00
Update rust.yml
the-broz Jun 4, 2024
72a3ad0
Update rust.yml
the-broz Jun 4, 2024
622f374
Update rust.yml
the-broz Jun 4, 2024
9c7062f
Update rust.yml
the-broz Jun 4, 2024
18e38f0
Update rust.yml
the-broz Jun 4, 2024
c49f5a6
Update rust.yml
the-broz Jun 4, 2024
b34f831
Update rust.yml
the-broz Jun 4, 2024
bad9e1e
Update rust.yml
the-broz Jun 4, 2024
0434e95
Update rust.yml
the-broz Jun 4, 2024
be3eb2d
Update rust.yml
the-broz Jun 4, 2024
d4fc06c
Update rust.yml
the-broz Jun 4, 2024
f85e9e8
Update rust.yml
the-broz Jun 4, 2024
cf17867
Update rust.yml
the-broz Jun 4, 2024
670c2a9
Update rust.yml
the-broz Jun 4, 2024
9563322
Update rust.yml
the-broz Jun 4, 2024
e862790
Remove unneeded comment
the-broz Jun 4, 2024
2c38622
Fix minor typos
the-broz Jun 4, 2024
dfdd7d1
Test removal of lua lib
the-broz Jun 4, 2024
88687fe
feat: Upload AppImage build to releases automatically.
the-broz Jun 5, 2024
fd3afea
Update rust.yml
the-broz Jun 5, 2024
abf9fa2
Update rust.yml
the-broz Jun 5, 2024
f5aeaff
Update rust.yml
the-broz Jun 5, 2024
5f23d89
Update rust.yml
the-broz Jun 5, 2024
19ef35f
Update rust.yml
the-broz Jun 5, 2024
8cf4e13
Update rust.yml
the-broz Jun 5, 2024
e29d98c
Update rust.yml
the-broz Jun 5, 2024
85a79a6
Update rust.yml
the-broz Jun 5, 2024
450459d
Update rust.yml
the-broz Jun 5, 2024
88a244f
Fix issues
the-broz Jun 5, 2024
16afe61
Update rust.yml
the-broz Jun 5, 2024
8e9929a
Update rust.yml
the-broz Jun 5, 2024
d3bf97b
Update rust.yml
the-broz Jun 5, 2024
5877127
Update rust.yml
the-broz Jun 5, 2024
b3b0552
Update rust.yml
the-broz Jun 5, 2024
0b7d6da
Update rust.yml
the-broz Jun 5, 2024
b6294e8
Update rust.yml
the-broz Jun 5, 2024
317ff0f
Update rust.yml
the-broz Jun 5, 2024
4a364fb
Update rust.yml
the-broz Jun 5, 2024
8f3bb8c
Update rust.yml
the-broz Jun 5, 2024
36384a6
Update rust.yml
the-broz Jun 5, 2024
baf831d
Update rust.yml
the-broz Jun 5, 2024
a48ae25
Update rust.yml
the-broz Jun 5, 2024
cef33af
Update rust.yml
the-broz Jun 5, 2024
5a1f740
Testing windows builds
the-broz Jun 5, 2024
945553b
Update rust.yml
the-broz Jun 5, 2024
cc31b31
Update rust.yml
the-broz Jun 5, 2024
0dad32c
Update rust.yml
the-broz Jun 5, 2024
2712c09
Update rust.yml
the-broz Jun 5, 2024
49988ef
Update rust.yml
the-broz Jun 5, 2024
f56b589
Update rust.yml
the-broz Jun 5, 2024
c5badac
Update rust.yml
the-broz Jun 5, 2024
6e07277
Update rust.yml
the-broz Jun 5, 2024
a3530d0
Aborting on Windows
the-broz Jun 5, 2024
80f7054
Update rust.yml
the-broz Jun 5, 2024
78dcb6f
Update rust.yml
the-broz Jun 5, 2024
ac1f3be
thingamob
the-broz Jun 5, 2024
998048a
Update rust.yml
the-broz Jun 5, 2024
3ae18f5
Update rust.yml
the-broz Jun 5, 2024
484e8f9
Update rust.yml
the-broz Jun 5, 2024
79eddc9
Update rust.yml
the-broz Jun 5, 2024
5596e5e
Change shell for Install MSYS2 to MSYS2 fr
the-broz Jun 5, 2024
043d59c
Update rust.yml
the-broz Jun 5, 2024
50e3118
Update rust.yml
the-broz Jun 5, 2024
36abb3d
Update rust.yml
the-broz Jun 5, 2024
bd79984
Update rust.yml
the-broz Jun 5, 2024
f249eb4
Update rust.yml
the-broz Jun 5, 2024
d8d846b
Update .github/workflows/rust.yml
the-broz Jun 5, 2024
1f4b9ca
Update rust.yml
the-broz Jun 5, 2024
2f296c7
Update .github/workflows/rust.yml
the-broz Jun 5, 2024
f1559d1
Update rust.yml
the-broz Jun 5, 2024
305793c
Update rust.yml
the-broz Jun 5, 2024
8ec95e5
Update rust.yml
the-broz Jun 5, 2024
7cecfc8
Update rust.yml
the-broz Jun 5, 2024
bb8c8b4
Update rust.yml
the-broz Jun 5, 2024
b92d9b5
Update rust.yml
the-broz Jun 5, 2024
f19360a
Update rust.yml
the-broz Jun 5, 2024
b9f6d5a
Update rust.yml
the-broz Jun 5, 2024
3774bda
Update rust.yml
the-broz Jun 5, 2024
2c71968
Update rust.yml
the-broz Jun 5, 2024
62a4179
Update rust.yml
the-broz Jun 5, 2024
8be5de7
Update rust.yml
the-broz Jun 5, 2024
2601801
Update rust.yml
the-broz Jun 5, 2024
ed8a0dc
Update rust.yml
the-broz Jun 5, 2024
eda325e
Update rust.yml
the-broz Jun 5, 2024
9abc92d
Update rust.yml
the-broz Jun 5, 2024
9faae85
Update rust.yml
the-broz Jun 5, 2024
fc308d7
Update rust.yml
the-broz Jun 5, 2024
7623c05
Update rust.yml
the-broz Jun 5, 2024
c7da773
Update rust.yml
the-broz Jun 5, 2024
11c0700
Update rust.yml
the-broz Jun 5, 2024
3ee38f7
Update rust.yml
the-broz Jun 5, 2024
feffbf0
Update rust.yml
the-broz Jun 5, 2024
f64b5fc
Update rust.yml
the-broz Jun 5, 2024
b2fe88c
Update rust.yml
the-broz Jun 5, 2024
c1a17b3
fix the download of artifacts for release
the-broz Jun 5, 2024
3a5c8ed
Merge branch 'face-hh:master' into master
the-broz Jun 5, 2024
b1327ac
Update rust.yml
the-broz Jun 5, 2024
09476c3
Update rust.yml
the-broz Jun 5, 2024
3ff278d
Update rust.yml
the-broz Jun 5, 2024
1bf31e8
Update rust.yml
the-broz Jun 5, 2024
54d94df
Update rust.yml
the-broz Jun 5, 2024
0a61ccb
[]
the-broz Jun 5, 2024
29aa703
Update rust.yml
the-broz Jun 5, 2024
0f12052
Update rust.yml
the-broz Jun 5, 2024
a0089ed
Update rust.yml
the-broz Jun 5, 2024
88b5c7f
Minor changes so that the result doesnt look disgusting
the-broz Jun 5, 2024
785cd87
Final Changes
the-broz Jun 5, 2024
0dfef6c
Update rust.yml
the-broz Jun 5, 2024
a8e8fe4
Merge branch 'face-hh:master' into master
the-broz Jun 5, 2024
e7cec40
test fix
the-broz Jun 5, 2024
306aa0d
Copy all of the stuff underneath /libs
the-broz Jun 5, 2024
46526cc
Update rust.yml
the-broz Jun 5, 2024
97b2e28
Update rust.yml
the-broz Jun 5, 2024
0d6fc5f
Update rust.yml
the-broz Jun 5, 2024
6bb2d01
Update rust.yml
the-broz Jun 5, 2024
97d2a60
Update rust.yml
the-broz Jun 5, 2024
8b6619b
Update rust.yml to not clean up libs folder as that is done by github
the-broz Jun 5, 2024
09f34cd
Trying to use 7z this time
the-broz Jun 5, 2024
e72f745
Update rust.yml
the-broz Jun 5, 2024
488d18d
Update rust.yml
the-broz Jun 5, 2024
7fe96d0
Update and rename rust.yml to build_napture.yml
SticksDev Jun 5, 2024
8090df3
Update build_napture.yml
the-broz Jun 5, 2024
1cf79b7
add terminator :)
the-broz Jun 5, 2024
71a3b8c
Update build_napture.yml
the-broz Jun 5, 2024
187f253
Update build_napture.yml
the-broz Jun 5, 2024
0def2d2
Update build_napture.yml
the-broz Jun 5, 2024
402ec20
Update build_napture.yml
the-broz Jun 5, 2024
12dc3a8
Update build_napture.yml
the-broz Jun 5, 2024
1d4b1ab
Update build_napture.yml
the-broz Jun 5, 2024
c3ac3fd
Update build_napture.yml
the-broz Jun 6, 2024
2fe29f6
Update build_napture.yml
the-broz Jun 6, 2024
3700dc9
Merge branch 'face-hh:master' into master
the-broz Jun 6, 2024
1672d71
Merge branch 'face-hh:master' into master
the-broz Jun 8, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
205 changes: 205 additions & 0 deletions .github/workflows/build_napture.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,205 @@
name: Napture Nightly

on:
push:
branches:
- master
paths:
- napture/*

env:
CARGO_TERM_COLOR: always

jobs:
build:
name: Build Napture (Ubuntu)
runs-on: ubuntu-24.04

steps:
- uses: actions/checkout@v4
- name: Install Dependencies
run: |
echo "Installing dependencies..."
sudo apt-get update
sudo apt-get install -y libglib2.0-dev libcairo2-dev libgraphene-1.0-dev libgtk-4-dev libadwaita-1-dev
sudo add-apt-repository universe
sudo apt install libfuse2
echo "Dependencies installed."

- name: Build Napture
run: |
echo "Building Napture..."
cd napture
export PKG_CONFIG_PATH=/usr/lib/pkgconfig
cargo build --release --verbose
echo "Napture built successfully."
- name: Install linuxdeploy
run: |
echo "Starting artifact upload phase..."
echo "Installing linuxdeploy..."
wget https://github.com/linuxdeploy/linuxdeploy/releases/download/continuous/linuxdeploy-x86_64.AppImage
chmod +x linuxdeploy-x86_64.AppImage
echo "linuxdeploy installed."
- name: Create Napture AppImage
run: |
echo "Creating Napture AppImage..."
cd napture
mv target/release/webx target/release/napture
ARCH=x86_64
../linuxdeploy-x86_64.AppImage --appdir AppDir -e target/release/napture -d io.github.face_hh.Napture.desktop -i io.github.face_hh.Napture.svg -o appimage
mv Napture-x86_64.AppImage ../Bussin.Napture-x86_64.AppImage
echo "AppImage created successfully."
- name: Rename AppImage
run: |
echo "Renaming AppImage..."
mv Bussin.Napture-x86_64.AppImage napture-linux-nightly.AppImage
echo "AppImage renamed successfully."

- name: Upload Artifact
uses: actions/upload-artifact@v4
with:
name: napture-linux-nightly.AppImage
path: napture-linux-nightly.AppImage
env:
UPLOAD_URL: ${{ steps.upload.outputs.upload_url }}
build_macos:
name: Build Napture (macOS)
runs-on: macos-latest

steps:
- uses: actions/checkout@v4
- name: Install deps
run: |
brew install gtk4 graphene glib libadwaita lua create-dmg pkg-config
arch -x86_64 /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
arch -x86_64 /usr/local/bin/brew install gtk4 graphene glib libadwaita lua pkg-config || exit 0 # Brew tries to link python which will fail
- name: Build Napture
run: |
rustup target add x86_64-apple-darwin
cd napture
RUSTFLAGS='-L /opt/homebrew/Cellar/' cargo build --release --target aarch64-apple-darwin
PKG_CONFIG='/usr/local/bin/pkg-config' RUSTFLAGS='-L /usr/local/Cellar/' cargo build --release --target x86_64-apple-darwin
lipo -create target/aarch64-apple-darwin/release/webx target/x86_64-apple-darwin/release/webx -output target/release/webx
- name: Make an app bundle
run: |
cd napture
mkdir -p target/release/Napture.app/Contents/MacOS
cp target/release/webx target/release/Napture.app/Contents/MacOS
cp ./Info.plist target/release/Napture.app/Contents
mkdir -p target/release/Napture.app/Contents/Resources/AppIcon.iconset

for SIZE in 16 32 64 128 256 512; do
sips -z $SIZE $SIZE ./file.png --out target/release/Napture.app/Contents/Resources/AppIcon.iconset/icon_${SIZE}x${SIZE}.png
done
for SIZE in 32 64 256 512; do
sips -z $SIZE $SIZE ./file.png --out target/release/Napture.app/Contents/Resources/AppIcon.iconset/icon_$(expr $SIZE / 2)x$(expr $SIZE / 2)x2.png
done

iconutil -c icns -o target/release/Napture.app/Contents/Resources/AppIcon.icns target/release/Napture.app/Contents/Resources/AppIcon.iconset
rm -rf target/release/Napture.app/Contents/Resources/AppIcon.iconset
- name: Sign the app
run: codesign --force --deep --sign - napture/target/release/Napture.app
- name: Pack Napture into DMG
run: |
cd napture/target/release
create-dmg napture-macos-nightly.dmg Napture.app
- name: Upload DMG Artifact
uses: actions/upload-artifact@v4
with:
name: napture-macos-nightly.dmg
path: napture/target/release/napture-macos-nightly.dmg

build_win:
name: Build Napture (Windows)
runs-on: windows-latest

steps:
- uses: actions/checkout@v4

- name: Install Dependencies
run: |
echo "Installing dependencies..."
rustup toolchain install stable-gnu && rustup default stable-gnu
echo "Dependencies installed."

- name: Install MSYS2
uses: msys2/setup-msys2@v2
with:
msys2-root: 'C:\msys64'
install-dir: 'C:\msys64'

- name: Install MSYS2 dependencies
run: |
echo "Installing MSYS2 packages..."
C:\msys64\usr\bin\bash.exe -lc "pacman -Syu --noconfirm"
C:\msys64\usr\bin\bash.exe -lc "pacman -S --noconfirm mingw-w64-x86_64-toolchain base-devel mingw-w64-x86_64-gtk4 mingw-w64-x86_64-gettext mingw-w64-x86_64-libxml2 mingw-w64-x86_64-librsvg mingw-w64-x86_64-pkgconf mingw-w64-x86_64-gcc mingw-w64-x86_64-libadwaita mingw-w64-x86_64-lua"

- name: Build Napture
run: |
echo "Building Napture..."
$Env:Path += ';C:\msys64\mingw64\include;C:\msys64\mingw64\bin;C:\msys64\mingw64\lib'
cd napture
cargo build --release --verbose
echo "Napture built successfully."

- name: Copy and Move DLLs
run: |
echo "Copying DLLs..."
mkdir -p napture/target/release/libs
cp C:/msys64/mingw64/bin/*.dll napture/target/release/libs
cp C:/msys64/mingw64/lib/*.dll napture/target/release/libs
echo "DLLs copied."
echo "Moving DLLs to exe directory..."
mv napture/target/release/libs/*.dll napture/target/release/
echo "DLLs moved."

- name: Zip Napture files
run: |
echo "Zipping Napture files..."
cd napture/target/release
7z a -tzip napture-windows-nightly.zip webx.exe *.dll

- name: Upload Napture
uses: actions/upload-artifact@v4
with:
name: napture-windows-nightly
path: napture/target/release/napture-windows-nightly.zip

upload:
name: "Upload Release"
runs-on: ubuntu-24.04
needs:
- build
- build_win
- build_macos
steps:
- name: Download Ubuntu Artifact
uses: actions/[email protected]
with:
name: napture-linux-nightly.AppImage
- name: Download Windows Artifact
uses: actions/[email protected]
with:
name: napture-windows-nightly
- name: Download macOS Artifact
uses: actions/[email protected]
with:
name: napture-macos-nightly.dmg
- name: Download Dependencies
run: |
sudo add-apt-repository universe
sudo apt install libfuse2
- name: Publish to Releases
uses: softprops/[email protected]
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
token: ${{ env.GITHUB_TOKEN }}
name: Nightly Build (${{ github.ref }})
tag_name: nightly
generate_release_notes: true
files: |
*.AppImage
*.zip
*.dmg
prerelease: true