mirror of
https://github.com/RetroDECK/components-template.git
synced 2024-11-21 19:05:39 +00:00
Creating a template wokflow for artifacts production
This commit is contained in:
commit
3f9456dabf
91
.github/workflows/build_artifacts.yml
vendored
Normal file
91
.github/workflows/build_artifacts.yml
vendored
Normal file
|
@ -0,0 +1,91 @@
|
|||
# Variables:
|
||||
# - RUNNER_TAG: optional, defines on which runner the workflow will use, default ubuntu-latest
|
||||
# - DYNAMIC_MANIFEST: optional, if set it will build the manifest from header.yml and module.yml files (json not yet supported)
|
||||
# - MANIFEST_FILENAME: needed, the manifest name such as net.retrodeck.retrodeck.yaml
|
||||
|
||||
name: "Build Artifacts for RetroDECK main manifest"
|
||||
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
- master
|
||||
workflow_dispatch:
|
||||
|
||||
|
||||
jobs:
|
||||
|
||||
Building_project:
|
||||
runs-on: ${{ env.RUNNER_TAG || 'ubuntu-latest' }}
|
||||
steps:
|
||||
|
||||
# Circumventing this bug: https://github.com/flatpak/flatpak-builder/issues/317
|
||||
# - name: Remove stuck mounts
|
||||
# run: sudo umount -f /home/ubuntu/solarus-runner/_work/RetroDECK-solarus/RetroDECK-solarus/.flatpak-builder/rofiles/*
|
||||
# continue-on-error: true
|
||||
|
||||
- name: Clone repo
|
||||
uses: actions/checkout@v3
|
||||
with:
|
||||
submodules: 'true'
|
||||
token: ${{ secrets.TRIGGER_BUILD_TOKEN }}
|
||||
|
||||
- name: "Install dependencies"
|
||||
run: "automation_tools/install_dependencies.sh"
|
||||
|
||||
- name: "Assembilng manifest"
|
||||
if: ${{ env.DYNAMIC_MANIFEST == 'true' }}
|
||||
run: "/bin/bash ${GITHUB_WORKSPACE}/automation_tools/assemble_manifest.sh"
|
||||
|
||||
- name: "[DEBUG] Outputting manifest"
|
||||
continue-on-error: true
|
||||
if: ${{ env.DYNAMIC_MANIFEST == 'true' }}
|
||||
run: cat ${{ env.MANIFEST_FILENAME }}
|
||||
|
||||
- name: "Build flatpak"
|
||||
run: |
|
||||
git config --global protocol.file.allow always
|
||||
flatpak-builder --user --force-clean \
|
||||
--install-deps-from=flathub \
|
||||
--install-deps-from=flathub-beta \
|
||||
--repo=${GITHUB_WORKSPACE}/artifacts-repo \
|
||||
"${GITHUB_WORKSPACE}"/artifacts-build-dir \
|
||||
"${{ env.MANIFEST_FILENAME }}"
|
||||
|
||||
- name: "Exporting dir tree"
|
||||
id: tree
|
||||
run: tree -H ./ > ${GITHUB_WORKSPACE}/tree.html
|
||||
|
||||
- name: Create Artifact for RetroDECK
|
||||
run: |
|
||||
tar -czf ${GITHUB_WORKSPACE}/RetroDECK-Artifact.tar.gz -C ${GITHUB_WORKSPACE}/artifacts-build-dir .
|
||||
hash=($(sha256sum ${GITHUB_WORKSPACE}/RetroDECK-Artifact.tar.gz))
|
||||
echo $hash > ${GITHUB_WORKSPACE}/RetroDECK-Artifact-cooker.sha
|
||||
mv -f RetroDECK-Artifact-cooker.* ${{ secrets.ARTIFACT_REPO }}
|
||||
continue-on-error: true
|
||||
timeout-minutes: 1440
|
||||
|
||||
- name: Set environment variable with current branch name
|
||||
run: echo "GITHUB_REF_SLUG=$(git rev-parse --abbrev-ref HEAD)" >> $GITHUB_ENV
|
||||
|
||||
- name: Get branch name
|
||||
id: branch_name
|
||||
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
|
||||
uses: ncipollo/release-action@v1
|
||||
with:
|
||||
tag: "${{ github.ref_name }}-${{ github.event.date || github.run_id }}"
|
||||
body: |
|
||||
# Release Notes
|
||||
These are the artifacts for RetroDECK of {{ github.repository }}, built from commit: ${{ github.repository }}@${{ github.sha }}.
|
||||
On branch [${{ github.ref_name }}](https://github.com/${{ github.repository }}/tree/${{ github.ref_name }}).
|
||||
|
||||
artifacts: "RetroDECK-Artifact.tar.gz, tree.html"
|
||||
allowUpdates: true
|
||||
makeLatest: true
|
||||
token: ${{ secrets.TRIGGER_BUILD_TOKEN }}
|
||||
continue-on-error: true
|
Loading…
Reference in a new issue