Merge pull request #176 from swetar-mecha/settings-app/ui-improvements #136
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: Shell - Build aarch64 | |
on: | |
push: | |
branches: | |
- main | |
- dev | |
- dev-arm64-build | |
env: | |
CARGO_INCREMENTAL: 0 | |
CARGO_NET_RETRY: 10 | |
RUST_BACKTRACE: short | |
RUSTUP_MAX_RETRIES: 10 | |
MACOSX_DEPLOYMENT_TARGET: 10.7 | |
CARGO_NET_GIT_FETCH_WITH_CLI: true | |
MECHANIX_APTLY_SERVER_ENDPOINT: ${{ vars.MECHANIX_APTLY_SERVER_ENDPOINT }} | |
MECHANIX_APTLY_DEB_REPOSITORY_DISTRO: ${{ vars.MECHANIX_APTLY_DEB_REPOSITORY_DISTRO }} | |
MECHANIX_APTLY_DEB_REPOSITORY_NAME: ${{ vars.MECHANIX_APTLY_DEB_REPOSITORY_NAME }} | |
MECHANIX_APTLY_S3_PUBLISH_ENDPOINT: ${{ vars.MECHANIX_APTLY_S3_PUBLISH_ENDPOINT }} | |
jobs: | |
build: | |
environment: dev | |
name: ${{ matrix.name }} | |
strategy: | |
fail-fast: true | |
matrix: | |
include: | |
# - name: Status Bar | |
# package: mechanix-status-bar | |
# artifact: mechanix-status-bar-aarch64-unknown-linux-gnu.tar.gz | |
# path: shell | |
# - name: Greeter | |
# package: mechanix-greeter | |
# artifact: mechanix-greeter-aarch64-unknown-linux-gnu.tar.gz | |
# path: shell | |
# - name: Settings Panel | |
# package: mechanix-settings-panel | |
# artifact: mechanix-settings-panel-aarch64-unknown-linux-gnu.tar.gz | |
# path: shell | |
# - name: Lock Screen | |
# package: mechanix-lock-screen | |
# artifact: mechanix-lock-screen-aarch64-unknown-linux-gnu.tar.gz | |
# path: shell | |
# - name: Home Screen | |
# package: mechanix-home-screen | |
# artifact: mechanix-home-screen-aarch64-unknown-linux-gnu.tar.gz | |
# path: shell | |
- name: Laucher | |
package: mechanix-launcher | |
artifact: mechanix-launcher-aarch64-unknown-linux-gnu.tar.gz | |
path: shell | |
# - name: App Drawer | |
# package: mechanix-app-drawer | |
# artifact: mechanix-app-drawer-aarch64-unknown-linux-gnu.tar.gz | |
# path: shell | |
# - name: App Switcher | |
# package: mechanix-app-switcher | |
# artifact: mechanix-app-switcher-aarch64-unknown-linux-gnu.tar.gz | |
# path: shell | |
# - name: Power options | |
# package: mechanix-power-options | |
# artifact: mechanix-power-options-aarch64-unknown-linux-gnu.tar.gz | |
# path: shell | |
# - name: Notification | |
# package: mechanix-notification | |
# artifact: mechanix-notification-aarch64-unknown-linux-gnu.tar.gz | |
# path: shell | |
# - name: Power options | |
# package: mechanix-polkit-agent | |
# artifact: mechanix-polkit-agent-aarch64-unknown-linux-gnu.tar.gz | |
# path: shell | |
- name: Keyboard | |
package: mechanix-keyboard | |
artifact: mechanix-keyboard-aarch64-unknown-linux-gnu.tar.gz | |
path: shell | |
runs-on: ubicloud-standard-2-arm | |
continue-on-error: false | |
steps: | |
- name: Setup | Checkout | |
uses: actions/checkout@v4 | |
- name: Install Rust 1.75.0 | |
run: | | |
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y | |
rustup default 1.75.0 | |
- name: Install cargo-deb | |
run: cargo install cargo-deb | |
- name: Update apt | |
run: sudo apt update | |
- name: Install dependencies | |
run: | | |
sudo apt install \ | |
libwayland-dev \ | |
libxkbcommon-dev \ | |
libdbus-1-dev \ | |
libpam0g-dev \ | |
libclang-dev \ | |
libpulse-dev | |
- name: Set up Git SSH key | |
run: | | |
mkdir -p ~/.ssh | |
echo "${{ secrets.SSH_PRIVATE_KEY_GIT }}" > ~/.ssh/id_rsa | |
chmod 600 ~/.ssh/id_rsa | |
ssh-keyscan github.com >> ~/.ssh/known_hosts | |
- name: Build [${{ matrix.package }}] | |
run: | | |
cd ${{ matrix.path }} | |
cargo --config net.git-fetch-with-cli=true fetch | |
cargo build --release --package ${{ matrix.package }} | |
ls -la | |
- name: Package deb [${{ matrix.package }}] | |
run: | | |
cd ${{ matrix.path }} | |
cargo deb --no-build --package ${{ matrix.package }} | |
ls -la | |
- name: Extract package details | |
id: package_details | |
run: | | |
cd ${{ matrix.path }} | |
PACKAGE_NAME=$(ls target/debian/*.deb | xargs basename) | |
FOLDER_NAME=$(echo $PACKAGE_NAME | sed 's/_.*$//') | |
echo "package_name=$PACKAGE_NAME" >> $GITHUB_OUTPUT | |
echo "folder_name=$FOLDER_NAME" >> $GITHUB_OUTPUT | |
echo "Package Name: $PACKAGE_NAME" | |
echo "Folder Name: $FOLDER_NAME" | |
- name: Upload package to Aptly | |
run: | | |
cd ${{ matrix.path }} | |
echo "Uploading package: ${{ steps.package_details.outputs.package_name }}" | |
echo "To folder: ${{ steps.package_details.outputs.folder_name }}" | |
curl -X POST -F file=@target/debian/${{ steps.package_details.outputs.package_name }} ${{ env.MECHANIX_APTLY_SERVER_ENDPOINT }}/api/files/${{ steps.package_details.outputs.folder_name }} | |
- name: Add package to local repo | |
run: | | |
echo "Adding package from folder: ${{ steps.package_details.outputs.folder_name }}" | |
curl -X POST ${{ env.MECHANIX_APTLY_SERVER_ENDPOINT }}/api/repos/${{ env.MECHANIX_APTLY_DEB_REPOSITORY_NAME }}/file/${{ steps.package_details.outputs.folder_name }} | |
- name: Update local published repo | |
run: | | |
echo "Updating local published repo for MECHANIX_APTLY_DEB_REPOSITORY_DISTRO: ${{ env.MECHANIX_APTLY_DEB_REPOSITORY_DISTRO }}" | |
curl -X PUT -H 'Content-Type: application/json' --data '{ | |
"Architectures": ["arm64", "amd64"], | |
"Signing": {"Skip": true} | |
}' ${{ env.MECHANIX_APTLY_SERVER_ENDPOINT }}/api/publish/:./${{ env.MECHANIX_APTLY_DEB_REPOSITORY_DISTRO }} | |
- name: Update S3 published repo | |
run: | | |
echo "Updating S3 published repo for MECHANIX_APTLY_DEB_REPOSITORY_DISTRO: ${{ env.MECHANIX_APTLY_DEB_REPOSITORY_DISTRO }}" | |
curl -X PUT -H 'Content-Type: application/json' --data '{ | |
"Sources": [{"Name": "${{ env.MECHANIX_APTLY_DEB_REPOSITORY_NAME }}"}], | |
"Architectures": ["arm64", "amd64"], | |
"Signing": {"Skip": true} | |
}' ${{ env.MECHANIX_APTLY_SERVER_ENDPOINT }}/api/publish/s3:${{env.MECHANIX_APTLY_S3_PUBLISH_ENDPOINT}}:/${{ env.MECHANIX_APTLY_DEB_REPOSITORY_DISTRO }} | |
- name: Prepare artifacts [${{ matrix.package }}] | |
run: | | |
mkdir build | |
cp ${{ matrix.path }}/target/release/${{ matrix.package }} ./build | |
cp ${{ matrix.path }}/target/debian/*.deb ./build | |
- name: Upload artifacts | |
uses: actions/upload-artifact@v4 | |
with: | |
name: ${{ matrix.artifact }} | |
path: ./build/* |