mirror of
https://github.com/RetroDECK/components-template.git
synced 2024-11-24 04:05:39 +00:00
Repo init
This commit is contained in:
parent
3f9456dabf
commit
d774c2ee45
85
.github/workflows/build_artifacts.yml
vendored
85
.github/workflows/build_artifacts.yml
vendored
|
@ -6,23 +6,30 @@
|
||||||
name: "Build Artifacts for RetroDECK main manifest"
|
name: "Build Artifacts for RetroDECK main manifest"
|
||||||
|
|
||||||
on:
|
on:
|
||||||
push:
|
|
||||||
branches:
|
|
||||||
- master
|
|
||||||
workflow_dispatch:
|
workflow_dispatch:
|
||||||
|
|
||||||
|
env:
|
||||||
|
RUNNER_TAG: ${{ env.RUNNER_TAG || 'ubuntu-latest' }}
|
||||||
|
DATE: ${{ github.run_id }}
|
||||||
|
MANIFEST_FILENAME: ${{ env.MANIFEST_FILENAME || '' }}
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
|
|
||||||
Building_project:
|
Check-variables:
|
||||||
runs-on: ${{ env.RUNNER_TAG || 'ubuntu-latest' }}
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
|
- name: Check MANIFEST_FILENAME is set
|
||||||
|
run: |
|
||||||
|
if [ -z "${{ env.MANIFEST_FILENAME }}" ]; then
|
||||||
|
echo "Error: MANIFEST_FILENAME is not set. This is required for the pipeline to run."
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
# Circumventing this bug: https://github.com/flatpak/flatpak-builder/issues/317
|
Building-project:
|
||||||
# - name: Remove stuck mounts
|
needs: Check-variables
|
||||||
# run: sudo umount -f /home/ubuntu/solarus-runner/_work/RetroDECK-solarus/RetroDECK-solarus/.flatpak-builder/rofiles/*
|
runs-on: ${{ env.RUNNER_TAG }}
|
||||||
# continue-on-error: true
|
|
||||||
|
steps:
|
||||||
- name: Clone repo
|
- name: Clone repo
|
||||||
uses: actions/checkout@v3
|
uses: actions/checkout@v3
|
||||||
with:
|
with:
|
||||||
|
@ -30,16 +37,27 @@ jobs:
|
||||||
token: ${{ secrets.TRIGGER_BUILD_TOKEN }}
|
token: ${{ secrets.TRIGGER_BUILD_TOKEN }}
|
||||||
|
|
||||||
- name: "Install dependencies"
|
- name: "Install dependencies"
|
||||||
run: "automation_tools/install_dependencies.sh"
|
uses: RetroDECK/components-template/.github/workflows/install_dependencies.yml@main
|
||||||
|
|
||||||
- name: "Assembilng manifest"
|
- name: "Assembling manifest"
|
||||||
if: ${{ env.DYNAMIC_MANIFEST == 'true' }}
|
if: ${{ env.DYNAMIC_MANIFEST == 'true' }}
|
||||||
run: "/bin/bash ${GITHUB_WORKSPACE}/automation_tools/assemble_manifest.sh"
|
run: |
|
||||||
|
if [ -f "${GITHUB_WORKSPACE}/automation_tools/assemble_manifest.sh" ]; then
|
||||||
|
/bin/bash "${GITHUB_WORKSPACE}/automation_tools/assemble_manifest.sh"
|
||||||
|
else
|
||||||
|
echo "Manifest assembly script not found."
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
- name: "[DEBUG] Outputting manifest"
|
- name: "[DEBUG] Outputting manifest"
|
||||||
continue-on-error: true
|
|
||||||
if: ${{ env.DYNAMIC_MANIFEST == 'true' }}
|
if: ${{ env.DYNAMIC_MANIFEST == 'true' }}
|
||||||
run: cat ${{ env.MANIFEST_FILENAME }}
|
run: |
|
||||||
|
if [ -f "${{ env.MANIFEST_FILENAME }}" ]; then
|
||||||
|
cat "${{ env.MANIFEST_FILENAME }}"
|
||||||
|
else
|
||||||
|
echo "ERROR: manifest file not found: ${{ env.MANIFEST_FILENAME }}"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
- name: "Build flatpak"
|
- name: "Build flatpak"
|
||||||
run: |
|
run: |
|
||||||
|
@ -47,22 +65,29 @@ jobs:
|
||||||
flatpak-builder --user --force-clean \
|
flatpak-builder --user --force-clean \
|
||||||
--install-deps-from=flathub \
|
--install-deps-from=flathub \
|
||||||
--install-deps-from=flathub-beta \
|
--install-deps-from=flathub-beta \
|
||||||
--repo=${GITHUB_WORKSPACE}/artifacts-repo \
|
--repo="${GITHUB_WORKSPACE}/artifacts-repo" \
|
||||||
"${GITHUB_WORKSPACE}"/artifacts-build-dir \
|
"${GITHUB_WORKSPACE}/artifacts-build-dir" \
|
||||||
"${{ env.MANIFEST_FILENAME }}"
|
"${{ env.MANIFEST_FILENAME }}"
|
||||||
|
|
||||||
- name: "Exporting dir tree"
|
- name: "Exporting dir tree"
|
||||||
id: tree
|
id: tree
|
||||||
run: tree -H ./ > ${GITHUB_WORKSPACE}/tree.html
|
run: |
|
||||||
|
tree -H ./ > ${GITHUB_WORKSPACE}/tree.html
|
||||||
|
echo "Directory tree exported to tree.html"
|
||||||
|
|
||||||
- name: Create Artifact for RetroDECK
|
- name: "Create Artifact for RetroDECK"
|
||||||
run: |
|
run: |
|
||||||
tar -czf ${GITHUB_WORKSPACE}/RetroDECK-Artifact.tar.gz -C ${GITHUB_WORKSPACE}/artifacts-build-dir .
|
tar -czf ${GITHUB_WORKSPACE}/RetroDECK-Artifact.tar.gz -C ${GITHUB_WORKSPACE}/artifacts-build-dir .
|
||||||
hash=($(sha256sum ${GITHUB_WORKSPACE}/RetroDECK-Artifact.tar.gz))
|
hash=($(sha256sum ${GITHUB_WORKSPACE}/RetroDECK-Artifact.tar.gz))
|
||||||
echo $hash > ${GITHUB_WORKSPACE}/RetroDECK-Artifact-cooker.sha
|
echo $hash > ${GITHUB_WORKSPACE}/RetroDECK-Artifact-cooker.sha
|
||||||
mv -f RetroDECK-Artifact-cooker.* ${{ secrets.ARTIFACT_REPO }}
|
|
||||||
continue-on-error: true
|
- name: Upload Artifacts
|
||||||
timeout-minutes: 1440
|
uses: actions/upload-artifact@v3
|
||||||
|
with:
|
||||||
|
name: RetroDECK-Artifacts
|
||||||
|
path: |
|
||||||
|
${GITHUB_WORKSPACE}/RetroDECK-Artifact.tar.gz
|
||||||
|
${GITHUB_WORKSPACE}/tree.html
|
||||||
|
|
||||||
- name: Set environment variable with current branch name
|
- name: Set environment variable with current branch name
|
||||||
run: echo "GITHUB_REF_SLUG=$(git rev-parse --abbrev-ref HEAD)" >> $GITHUB_ENV
|
run: echo "GITHUB_REF_SLUG=$(git rev-parse --abbrev-ref HEAD)" >> $GITHUB_ENV
|
||||||
|
@ -71,21 +96,15 @@ jobs:
|
||||||
id: branch_name
|
id: branch_name
|
||||||
run: echo "BRANCH_NAME=$(echo $GITHUB_REF | sed 's|refs/heads/||')" >> $GITHUB_ENV
|
run: echo "BRANCH_NAME=$(echo $GITHUB_REF | sed 's|refs/heads/||')" >> $GITHUB_ENV
|
||||||
|
|
||||||
- name: Get date
|
|
||||||
id: date
|
|
||||||
run: echo "DATE=$(date +'%d%m%y.%S')" >> $GITHUB_ENV
|
|
||||||
|
|
||||||
- name: Publish the artifacts in a new release
|
- name: Publish the artifacts in a new release
|
||||||
uses: ncipollo/release-action@v1
|
uses: ncipollo/release-action@v1
|
||||||
with:
|
with:
|
||||||
tag: "${{ github.ref_name }}-${{ github.event.date || github.run_id }}"
|
tag: "${{ github.ref_name }}-${{ github.run_id }}"
|
||||||
body: |
|
body: |
|
||||||
# Release Notes
|
# Release Notes
|
||||||
These are the artifacts for RetroDECK of {{ github.repository }}, built from commit: ${{ github.repository }}@${{ github.sha }}.
|
These are the artifacts for RetroDECK from ${{ github.repository }}, built from commit: ${{ github.repository }}@${{ github.sha }}.
|
||||||
On branch [${{ github.ref_name }}](https://github.com/${{ github.repository }}/tree/${{ github.ref_name }}).
|
On branch [${{ github.ref_name }}](https://github.com/${{ github.repository }}/tree/${{ github.ref_name }}).
|
||||||
|
artifacts: "${GITHUB_WORKSPACE}/RetroDECK-Artifact.tar.gz, ${GITHUB_WORKSPACE}/tree.html"
|
||||||
artifacts: "RetroDECK-Artifact.tar.gz, tree.html"
|
|
||||||
allowUpdates: true
|
allowUpdates: true
|
||||||
makeLatest: true
|
makeLatest: true
|
||||||
token: ${{ secrets.TRIGGER_BUILD_TOKEN }}
|
token: ${{ secrets.TRIGGER_BUILD_TOKEN || secrets.GITHUB_TOKEN }}
|
||||||
continue-on-error: true
|
|
||||||
|
|
19
.github/workflows/install_dependencies.yml
vendored
Normal file
19
.github/workflows/install_dependencies.yml
vendored
Normal file
|
@ -0,0 +1,19 @@
|
||||||
|
name: "Install dependencies"
|
||||||
|
|
||||||
|
on:
|
||||||
|
workflow_dispatch:
|
||||||
|
workflow_call:
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
install-dependencies:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- name: "Install dependencies"
|
||||||
|
run: |
|
||||||
|
echo "Starting dependency installation..."
|
||||||
|
if [ -f "${GITHUB_WORKSPACE}/automation_tools/install_dependencies.sh" ]; then
|
||||||
|
/bin/bash "${GITHUB_WORKSPACE}/automation_tools/install_dependencies.sh"
|
||||||
|
else
|
||||||
|
echo "Dependency installation script not found."
|
||||||
|
exit 1
|
||||||
|
fi
|
2
.gitignore
vendored
Normal file
2
.gitignore
vendored
Normal file
|
@ -0,0 +1,2 @@
|
||||||
|
build-dir/
|
||||||
|
.flatpak-builder/
|
33
automation_tools/install_dependencies.sh
Executable file
33
automation_tools/install_dependencies.sh
Executable file
|
@ -0,0 +1,33 @@
|
||||||
|
#!/bin/bash
|
||||||
|
# This script is installing the required dependencies to correctly run the pipeline and build the flatpak
|
||||||
|
|
||||||
|
unset pkg_mgr
|
||||||
|
|
||||||
|
# rpm-ostree must be checked before dnf because a dnf (wrapper) command also works on rpm-ostree distros (not what we want)
|
||||||
|
for potential_pkg_mgr in apt pacman rpm-ostree dnf; do
|
||||||
|
command -v "$potential_pkg_mgr" &> /dev/null && pkg_mgr="$potential_pkg_mgr" && break
|
||||||
|
done
|
||||||
|
|
||||||
|
case "$pkg_mgr" in
|
||||||
|
apt)
|
||||||
|
sudo add-apt-repository -y ppa:flatpak/stable
|
||||||
|
sudo apt update
|
||||||
|
sudo apt install -y flatpak flatpak-builder p7zip-full xmlstarlet bzip2 curl jq
|
||||||
|
;;
|
||||||
|
pacman)
|
||||||
|
sudo pacman -Syu --noconfirm flatpak flatpak-builder p7zip xmlstarlet bzip2
|
||||||
|
;;
|
||||||
|
rpm-ostree)
|
||||||
|
echo "When using a distro with rpm-ostree, you shouldn't build directly on the host. Try using a distrobox."
|
||||||
|
exit 1
|
||||||
|
;;
|
||||||
|
dnf)
|
||||||
|
sudo dnf install -y flatpak flatpak-builder p7zip p7zip-plugins xmlstarlet bzip2 curl
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
echo "Package manager $pkg_mgr not supported. Please open an issue."
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
flatpak remote-add --user --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo
|
||||||
|
flatpak remote-add --user --if-not-exists flathub-beta https://flathub.org/beta-repo/flathub-beta.flatpakrepo
|
4
automation_tools/update_from_upstream.sh
Executable file
4
automation_tools/update_from_upstream.sh
Executable file
|
@ -0,0 +1,4 @@
|
||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
git fetch https://github.com/flathub/net.rpcs3.RPCS3 master # Fetch the latest changes from the remote master branch
|
||||||
|
git merge FETCH_HEAD # Merge the fetched changes into your current branch
|
3
flathub.json
Normal file
3
flathub.json
Normal file
|
@ -0,0 +1,3 @@
|
||||||
|
{
|
||||||
|
"only-arches": ["x86_64"]
|
||||||
|
}
|
Loading…
Reference in a new issue