Skip to content

Commit

Permalink
ci: use common snapcrafters ci; update README (#11)
Browse files Browse the repository at this point in the history
  • Loading branch information
jnsgruk authored Feb 23, 2024
1 parent 4195366 commit b0a14b1
Show file tree
Hide file tree
Showing 8 changed files with 231 additions and 61 deletions.
25 changes: 25 additions & 0 deletions .github/workflows/promote-to-stable.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
name: Promote

on:
issue_comment:
types:
- created

permissions:
issues: write

jobs:
promote:
name: ⬆️ Promote to stable
environment: "Candidate Branch"
runs-on: ubuntu-latest
if: |
( !github.event.issue.pull_request )
&& contains(github.event.comment.body, '/promote ')
&& contains(github.event.*.labels.*.name, 'testing')
steps:
- name: ⬆️ Promote to stable
uses: snapcrafters/ci/promote-to-stable@main
with:
github-token: ${{ secrets.GITHUB_TOKEN }}
store-token: ${{ secrets.SNAP_STORE_STABLE }}
17 changes: 17 additions & 0 deletions .github/workflows/pull-request.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
name: Pull Request

on:
pull_request:
branches: [ "candidate" ]

concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true

jobs:
build:
name: 🧪 Build snap on amd64
runs-on: ubuntu-latest
steps:
- name: 🧪 Build snap on amd64
uses: snapcrafters/ci/test-snap-build@main
72 changes: 72 additions & 0 deletions .github/workflows/release-to-candidate.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,72 @@
name: Release

on:
# Run the workflow each time new commits are pushed to the candidate branch.
push:
branches: [ "candidate" ]
workflow_dispatch:

concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true

permissions:
contents: read
issues: write

jobs:
get-architectures:
name: 🖥 Get snap architectures
runs-on: ubuntu-latest
outputs:
architectures: ${{ steps.get-architectures.outputs.architectures }}
architectures-list: ${{ steps.get-architectures.outputs.architectures-list }}
steps:
- name: 🖥 Get snap architectures
id: get-architectures
uses: snapcrafters/ci/get-architectures@main

release:
name: 🚢 Release to latest/candidate
needs: get-architectures
runs-on: ubuntu-latest
environment: "Candidate Branch"
strategy:
matrix:
architecture: ${{ fromJSON(needs.get-architectures.outputs.architectures-list) }}
steps:
- name: 🚢 Release to latest/candidate
uses: snapcrafters/ci/release-to-candidate@main
with:
architecture: ${{ matrix.architecture }}
launchpad-token: ${{ secrets.LP_BUILD_SECRET }}
repo-token: ${{ secrets.SNAPCRAFTERS_BOT_COMMIT }}
store-token: ${{ secrets.SNAP_STORE_CANDIDATE }}

call-for-testing:
name: 📣 Create call for testing
needs: [release, get-architectures]
environment: "Candidate Branch"
runs-on: ubuntu-latest
outputs:
issue-number: ${{ steps.issue.outputs.issue-number }}
steps:
- name: 📣 Create call for testing
id: issue
uses: snapcrafters/ci/call-for-testing@main
with:
architectures: ${{ needs.get-architectures.outputs.architectures }}
github-token: ${{ secrets.GITHUB_TOKEN }}

screenshots:
name: 📸 Gather screenshots
needs: call-for-testing
environment: "Candidate Branch"
runs-on: ubuntu-latest
steps:
- name: 📸 Gather screenshots
uses: snapcrafters/ci/get-screenshots@main
with:
issue-number: ${{ needs.call-for-testing.outputs.issue-number }}
github-token: ${{ secrets.GITHUB_TOKEN }}
screenshots-token: ${{ secrets.SNAPCRAFTERS_BOT_COMMIT }}
29 changes: 29 additions & 0 deletions .github/workflows/sync-upstream.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
name: Update

on:
# Runs at 10:00 UTC every day
schedule:
- cron: "0 10 * * *"
# Allows you to run this workflow manually from the Actions tab
workflow_dispatch:

concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true

jobs:
sync:
name: 🔄 Sync version with upstream
environment: "Candidate Branch"
runs-on: ubuntu-latest
steps:
- name: 🔄 Sync version with upstream
uses: snapcrafters/ci/sync-version@main
with:
token: ${{ secrets.SNAPCRAFTERS_BOT_COMMIT }}
update-script: |
VERSION=$(
curl -sL https://api.github.com/repos/alacritty/alacritty/releases |
jq . | grep tag_name | grep -vE "beta|rc" | head -n 1 | cut -d'"' -f4 | tr -d 'v'
)
sed -i 's/^\(version: \).*$/\1'"$VERSION"'/' snap/snapcraft.yaml
23 changes: 0 additions & 23 deletions .github/workflows/test-snap-can-build.yml

This file was deleted.

101 changes: 69 additions & 32 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,50 +1,87 @@
<h1 align="center">
<img src="alacritty.png" alt="alacritty">
<br />
alacritty
<img src="snap/alacritty.png" alt="Alacritty">
</h1>

<p align="center"><b>This is the snap for alacritty</b>, <i>“A cross-platform, GPU enhanced terminal emulator”</i>. It works on Ubuntu, Fedora, Debian, and other major Linux
distributions.</p>
<p align="center"><b>This is the snap for Alacritty</b>. It is a community-maintained package to easily install Alacritty on Ubuntu, Fedora, Debian and other major Linux distributions. It is available in the Snap Store, Ubuntu Software, and a number of other applications.</p>

<!-- Uncomment and modify this when you are provided a build status badge
<p align="center">
<a href="https://build.snapcraft.io/user/snapcrafters/fork-and-rename-me"><img src="https://build.snapcraft.io/badge/snapcrafters/fork-and-rename-me.svg" alt="Snap Status"></a>
</p>
-->
<p align="center"><i>"A cross-platform, GPU enhanced terminal emulator."</i></p>

<p align="center">
<img width="600"
alt="Alacritty running vim inside tmux"
src="https://cloud.githubusercontent.com/assets/4285147/21585004/2ebd0288-d06c-11e6-95d3-4a2889dbbd6f.png">
<a href="https://snapcraft.io/alacritty"><img src="https://snapcraft.io/alacritty/badge.svg" alt="Snap Status"></a>
<a href="https://github.com/snapcrafters/alacritty/actions/workflows/sync-upstream.yml"><img src="https://github.com/snapcrafters/alacritty/actions/workflows/sync-upstream.yml/badge.svg"></a>
<a href="https://github.com/snapcrafters/alacritty/actions/workflows/release-to-candidate.yml"><img src="https://github.com/snapcrafters/alacritty/actions/workflows/release-to-candidate.yml/badge.svg"></a>
<a href="https://github.com/snapcrafters/alacritty/actions/workflows/promote-to-stable.yml"><img src="https://github.com/snapcrafters/alacritty/actions/workflows/promote-to-stable.yml/badge.svg"></a>
</p>

<p align="center">Published for <img src="https://raw.githubusercontent.com/anythingcodes/slack-emoji-for-techies/gh-pages/emoji/tux.png" align="top" width="24" /> with 💝 by Snapcrafters</p>
## Install

## Build
```shell
snap install alacritty --classic
```

SNAPCRAFT_BUILD_ENVIRONMENT_MEMORY=4G snapcraft --debug
([Don't have snapd installed?](https://snapcraft.io/docs/core/install))

## Install
<p align="center">Published for <img src="https://raw.githubusercontent.com/anythingcodes/slack-emoji-for-techies/gh-pages/emoji/tux.png" align="top" width="24" /> with :gift_heart: by Snapcrafters</p>

sudo snap install alacritty --classic
## How to contribute to this snap

<!-- Uncomment and modify this when your snap is available on the store
[![Get it from the Snap Store](https://snapcraft.io/static/images/badges/en/snap-store-white.svg)](https://snapcraft.io/my-snap-name)
-->
Thanks for your interest! Below you find instructions to help you contribute to this snap.

([Don't have snapd installed?](https://snapcraft.io/docs/core/install))
The general workflow is to submit pull requests that merges your changes into the `candidate` branch here on GitHub. Once the pull request has been merged, a GitHub action will automatically build the snap and publish it to the `candidate` channel in the Snap Store. Once the snap has been tested thoroughly, we promote it to the `stable` channel so all our users get it!

### Initial setup

If this is your first time contributing to this snap, you first need to set up your own fork of this repository.

1. [Fork the repository](https://docs.github.com/en/github/getting-started-with-github/fork-a-repo) into your own GitHub namespace.
2. [Clone your fork](https://git-scm.com/book/en/v2/Git-Basics-Getting-a-Git-Repository), so that you have it on your local computer.
3. Configure your local repo. To make things a bit more intuitive, we will rename your fork's remote to `myfork`, and add the snapcrafters repo as `snapcrafters`.

```shell
git remote rename origin myfork
git remote add snapcrafters https://github.com/snapcrafters/alacritty.git
git fetch --all
```

### Submitting changes in a pull request

Once you're all setup for contributing, keep in mind that you want the git information to be all up-to-date. So if you haven't "fetched" all changes in a while, start with that:

```shell
git fetch --all -p
```

Now that your git metadata has been updated you are ready to create a bugfix branch, make your changes, and open a pull request.

1. All pull requests should go to the stable branch so create your branch as a copy of the stable branch:

```shell
git checkout -b my-bugfix-branch snapcrafters/candidate
```

2. Make your desired changes and build a snap locally for testing:

```shell
snapcraft --use-lxd
```

3. After you are happy with your changes, commit them and push them to your fork so they are available on GitHub:

```shell
git commit -a
git push -u myfork my-bugfix-branch
```

4. Then, [open up a pull request](https://docs.github.com/en/github/collaborating-with-issues-and-pull-requests/about-pull-requests) from your `my-bugfix-branch` to the `snapcrafters/candidate` branch.
5. Once you've opened the pull request, it will automatically trigger the build-test action that will launch a build of the snap. You can watch the progress of the snap build from your pull request (Show all checks -> Details). Once the snap build has completed, you can find the built snap (to test with) under "Artifacts".
6. Someone from the team will review the open pull request and either merge it or start a discussion with you with additional changes or clarification needed.
7. Once the pull request has been merged into the stable branch, a GitHub action will rebuild the snap using your changes and publish it to the [Snap Store](https://snapcraft.io/alacritty) into the `candidate` channel. After sufficient testing of the snap from the candidate channel, one of the maintainers or administrators will promote the snap to the stable branch in the Snap Store.
The snap requires glibc version 2.33 or higher to be installed. For Ubuntu, this means Ubuntu 22.04 LTS or newer.
## Maintainers
| [![Alper Kanat](https://gravatar.com/avatar/ef468cdb9947165b09d2afae24d6491c/?s=128)](https://github.com/tunix/) |
| :---: |
| [Alper Kanat](https://github.com/tunix/) |
- [@tunix](https://github.com/tunix/)
<!-- Uncomment and modify this when you have upstream contacts
## Upstream
## License
| [![Upstream Name](https://gravatar.com/avatar/bc0bced65e963eb5c3a16cab8b004431?s=128)](https://github.com/upstreamname) |
| :---: |
| [Upstream Name](https://github.com/upstreamname) |
-->
- The license the build files in this repository is MIT
- Alacritty is licensed as Apache-2.0
File renamed without changes
25 changes: 19 additions & 6 deletions snap/snapcraft.yaml
Original file line number Diff line number Diff line change
@@ -1,10 +1,26 @@
name: alacritty
adopt-info: alacritty
version: 0.13.1
summary: A cross-platform, GPU enhanced terminal emulator.
description: |
Alacritty is a modern terminal emulator that comes with sensible defaults, but allows for
extensive configuration. By integrating with other applications, rather than reimplementing their
functionality, it manages to provide a flexible set of features with high performance
**Authors**
This snap is maintained by the Snapcrafters community, and is not necessarily endorsed or
officially maintained by the upstream developers.
icon: snap/alacritty.png
website: https://alacritty.org
contact: https://github.com//snapcrafters/alacritty/issues
issues: https://github.com//snapcrafters/alacritty/issues
source-code: https://github.com/alacritty/discord

base: core22
grade: stable
confinement: classic
compression: lzo # should make startup nearly as fast as regular executables
compression: lzo

apps:
alacritty:
Expand Down Expand Up @@ -55,7 +71,7 @@ parts:
alacritty:
plugin: rust
source: https://github.com/alacritty/alacritty.git
source-tag: v0.13.1
source-tag: v$SNAPCRAFT_PROJECT_VERSION
parse-info:
- extra/linux/org.alacritty.Alacritty.appdata.xml
rust-path:
Expand Down Expand Up @@ -92,9 +108,6 @@ parts:
- libxkbcommon0
- libnss-sss
override-build: |
version=$(git describe --match "v*" | cut -c2-)
craftctl set version=$version
craftctl default
mkdir -p $CRAFT_PART_INSTALL/usr/share/applications \
Expand Down

0 comments on commit b0a14b1

Please sign in to comment.