diff --git a/.github/workflows/build-main.yaml b/.github/workflows/build-main.yaml new file mode 100644 index 000000000..6014803eb --- /dev/null +++ b/.github/workflows/build-main.yaml @@ -0,0 +1,114 @@ +# SPDX-License-Identifier: GPL-2.0-or-later +# Copyright (C) 2021-present 351ELEC +# Copyright (C) 2022-present Fewtarius + +### Based on work by @pkegg + +name: build-main +on: + repository_dispatch: + types: [release-main] + +concurrency: + group: main + +jobs: + build: + timeout-minutes: 1440 + runs-on: main + steps: + - uses: hmarr/debug-action@v2 + name: debug + - name: get current branch as it may not be 'default branch; + id: branch + run: | + branch_arg="${{ github.event.client_payload.branch }}" + if [[ -z "$branch_arg" ]]; then + branch_arg="$GITHUB_REF_NAME" + fi + echo "::set-output name=branch::$branch_arg" + - uses: actions/checkout@v2 + name: checkout + with: + clean: false + ref: "${{ steps.branch.outputs.branch }}" + - name: Get date for artifacts + id: date + run: echo "::set-output name=date::$(date +'%Y%m%d')" + - name: Get short SHA for artifacts + id: sha + run: echo "::set-output name=sha::$(git rev-parse --short HEAD)" + - name: Get version + id: version + run: | + set -e + echo "full name: ${{ github.event.repository.full_name }}" + if [[ "${{ github.event.client_payload.release_tag }}" != "" ]]; then + echo "::set-output name=version::${{ github.event.client_payload.release_tag }}" + else + echo "::set-output name=version::${{ steps.date.outputs.date }}-${{ steps.sha.outputs.sha }}" + fi + - name: Create release as draft + if: github.event.action == 'release-main' + uses: ncipollo/release-action@v1 + with: + tag: "${{ steps.version.outputs.version }}" + body: | +         [![Latest Version](https://img.shields.io/github/release/JustEnoughLinuxOS/distribution.svg?color=5998FF&label=latest%20version&style=flat-square)](https://github.com/JustEnoughLinuxOS/distribution/releases/latest) [![Activity](https://img.shields.io/github/commit-activity/m/JustEnoughLinuxOS/distribution?color=5998FF&style=flat-square)](https://github.com/JustEnoughLinuxOS/distribution/commits) [![Pull Requests](https://img.shields.io/github/issues-pr-closed/JustEnoughLinuxOS/distribution?color=5998FF&style=flat-square)](https://github.com/JustEnoughLinuxOS/distribution/pulls) [![Discord Server](https://img.shields.io/discord/948029830325235753?color=5998FF&label=chat&style=flat-square)](https://discord.gg/seTxckZjJy) + # + Just Enough Linux Operating System (JELOS) is a community developed Linux distribution for handheld gaming devices. Our goal is to produce an operating system that has the features and capabilities that we need, and to have fun as we develop it. + + ## Licenses + JELOS is a Linux distribution that is made up of many open-source components. Components are provided under their respective licenses. This distribution includes components licensed for non-commercial use only. + + ### JELOS Branding + JELOS branding and images are licensed under a [Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License](https://creativecommons.org/licenses/by-nc-sa/4.0/). + + #### You are free to + * Share — copy and redistribute the material in any medium or format + * Adapt — remix, transform, and build upon the material + + #### Under the following terms + * Attribution — You must give appropriate credit, provide a link to the license, and indicate if changes were made. You may do so in any reasonable manner, but not in any way that suggests the licensor endorses you or your use. + * NonCommercial — You may not use the material for commercial purposes. + * ShareAlike — If you remix, transform, or build upon the material, you must distribute your contributions under the same license as the original. + + ### JELOS Software + Copyright 2021-present Fewtarius + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + + ## Installation + * JELOS is a source based Linux distribution. To install, follow BUILDING.md and then write the resulting image to your micro sd card using your favorite image writing tool. + + ## Documentation + * [Home](https://github.com/JustEnoughLinuxOS/distribution/wiki) + * [Donating to JELOS](https://github.com/JustEnoughLinuxOS/distribution/wiki/Donating-to-JELOS) + * [Frequently asked Questions](https://github.com/JustEnoughLinuxOS/distribution/wiki/Frequently-Asked-Questions) + * [HotKeys](https://github.com/JustEnoughLinuxOS/distribution/wiki/Hotkeys) + * [Emulators and Game Engines](https://github.com/JustEnoughLinuxOS/distribution/wiki/JELOS-emulators-and-game-engines) + * [Moonlight Game Streaming](https://github.com/JustEnoughLinuxOS/distribution/wiki/Moonlight-Game-Streaming) + * [Using Cloud Drives](https://github.com/JustEnoughLinuxOS/distribution/wiki/Using-Cloud-Drives) + * [Wireguard VPN](https://github.com/JustEnoughLinuxOS/distribution/wiki/WireGuard-VPN) + + ## Contributing + * [Developing and Building JELOS](https://github.com/JustEnoughLinuxOS/distribution/blob/dev/BUILDING.md) + + ## Change Log + ${{ github.event.client_payload.release_notes }} + + prerelease: false + draft: true + token: ${{ secrets.REPO_ACCESS }} + owner: JustEnoughLinuxOS + repo: distribution diff --git a/.github/workflows/release-main.yaml b/.github/workflows/release-main.yaml new file mode 100644 index 000000000..3165f6413 --- /dev/null +++ b/.github/workflows/release-main.yaml @@ -0,0 +1,72 @@ +# SPDX-License-Identifier: GPL-2.0-or-later +# Copyright (C) 2021-present 351ELEC +# Copyright (C) 2022-present Fewtarius + +### Based on work by @pkegg + +name: release-main +on: + push: + paths-ignore: + - '.github/**' + - '*.md' + - 'Dockerfile' + - '.dockerignore' + - '.gitignore' + - 'licenses/**' + - 'tools/**' + branches: + - main + workflow_dispatch: + +env: + BRANCH: main + +jobs: + launch-main-release-if-needed: + runs-on: ubuntu-20.04 + steps: + - uses: actions/checkout@v2 + name: checkout + with: + clean: false + fetch-depth: 0 + ref: "${{env.BRANCH}}" + + - name: only run on the primary repository + if: ${{ !startsWith(github.repository_owner, 'JustEnoughLinuxOS') }} + run: exit 0 + + - name: repository full name + id: full_name + run: | + echo "name=full_name::$(git config --get remote.origin.url | sed 's|^.*github.com/||g' | sed 's/.git$//g')" >> $GITHUB_OUTPUT + + - name: changes + id: changes + run: | + prevrelcommit="$(git rev-list --tags --max-count=1)" + release_notes="$(git log ${prevrelcommit}..HEAD --pretty=format:"* %h: %s")" + release_notes="${release_notes//'%'/'%25'}" + release_notes="${release_notes//$'\n'/'%0A'}" + release_notes="${release_notes//$'\r'/'%0D'}" + echo "name=changes::$(echo ${release_notes} | wc -l)" >> $GITHUB_OUTPUT + echo "name=release_notes::${release_notes}" >> $GITHUB_OUTPUT + - name: Get date for artifacts + id: date + run: echo "name=date::$(date +'%Y%m%d')" >> $GITHUB_OUTPUT + + - name: Repository Dispatch + if: steps.changes.outputs.changes != '0' + uses: peter-evans/repository-dispatch@v1 + with: + token: ${{ secrets.REPO_ACCESS }} + repository: ${{ steps.full_name.outputs.full_name }} + event-type: release-main + client-payload: | + { + "branch" : "${{ env.BRANCH }}", + "release_tag" : "${{steps.date.outputs.date}}", + "release_notes" : ${{toJSON(steps.changes.outputs.release_notes)}} + } +