name: "Build ES-DE" on: push: branches: - retrodeck-main - main - feat/* workflow_dispatch: jobs: Building_RetroDECK-ES-DE: runs-on: ubuntu-latest steps: - name: Clone RetroDECK repo uses: actions/checkout@v3 with: submodules: 'true' token: ${{ secrets.TRIGGER_BUILD_TOKEN }} fetch-depth: 1 - name: "Install dependencies" run: "automation_tools/install_dependencies.sh" - name: "Creating ES-DE manifest" run: "/bin/bash ${GITHUB_WORKSPACE}/automation_tools/update_es-de_manifest.sh" - name: "[DEBUG] Outputting manifest" run: cat net.retrodeck.es-de.yml - name: "Build flatpak" id: "flatpak-download" 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}/es-de-repo \ "${GITHUB_WORKSPACE}"/es-de-build-dir \ net.retrodeck.es-de.yml - name: "Exporting dir tree" id: tree run: tree -H ./ > ${GITHUB_WORKSPACE}/tree.html - name: Create Artifact for RetroDECK run: | tar -czf ${GITHUB_WORKSPACE}/RetroDECK-ES-DE-Artifact.tar.gz -C ${GITHUB_WORKSPACE}/es-de-build-dir . hash=($(sha256sum ${GITHUB_WORKSPACE}/RetroDECK-ES-DE-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 release uses: ncipollo/release-action@v1 with: tag: "${{env.BRANCH_NAME}}-${{env.DATE}}" body: | # Release Notes These are the artifact of RetroDECK ES-DE, commit: ${{ github.event.repository.full_name }}@${{github.sha}}. On branch [${{env.BRANCH_NAME}}](https://github.com/RetroDECK/ES-DE/tree/${{env.BRANCH_NAME}}). artifacts: "RetroDECK-ES-DE-Artifact.tar.gz, tree.html" allowUpdates: true makeLatest: ${{ contains(env.BRANCH_NAME, 'feat/') && 'false' || 'true' }} token: ${{ secrets.TRIGGER_BUILD_TOKEN }} continue-on-error: true - name: Clone Cooker repo uses: actions/checkout@v3 with: repository: https://github.com/RetroDECK/RetroDECK ref: cooker submodules: 'true' token: ${{ secrets.TRIGGER_BUILD_TOKEN }} path: "${GITHUB_WORKSPACE}/cooker" fetch-depth: 1 - name: "Update RetroDECK Cooker manifest with new artifact URL and SHA256" if: contains(env.BRANCH_NAME, 'feat/') == false run: | NEW_URL="https://github.com/RetroDECK/ES-DE/releases/download/${{env.BRANCH_NAME}}-${{env.DATE}}/RetroDECK-ES-DE-Artifact.tar.gz" NEW_SHA256=$(cat ${GITHUB_WORKSPACE}/RetroDECK-Artifact-cooker.sha) yq e -i '.modules[] | select(.name == "ES-DE") | .sources[0].url = strenv(NEW_URL)' cooker/net.retrodeck.retrodeck.yml yq e -i '.modules[] | select(.name == "ES-DE") | .sources[0].sha256 = strenv(NEW_SHA256)' cooker/net.retrodeck.retrodeck.yml - name: Commit and push changes to Cooker repo if: contains(env.BRANCH_NAME, 'feat/') == false run: | cd "${GITHUB_WORKSPACE}/cooker" git checkout feat/lighter-manifest # TODO: remove me later git config user.name "GitHub Actions" git config user.email "actions@github.com" git add net.retrodeck.retrodeck.yml git commit -m "ES-DE: updated module with new artifact URL and SHA256 [skip ci]" git push origin HEAD