chore: Initialize actions
All checks were successful
Write changelog / write-changelog (push) Successful in 22s
Rust CI / Rust CI (push) Successful in 3m7s

Signed-off-by: Awiteb <a@4rs.nl>
This commit is contained in:
Awiteb 2024-05-28 22:25:50 +03:00
parent 12606f45bc
commit cffada6b3b
Signed by: awiteb
GPG key ID: 3F6B55640AA6682F
8 changed files with 269 additions and 0 deletions

View file

@ -0,0 +1,31 @@
---
name: Bug
about: Create a bug report to help us improve Telepingbot
title: '...'
labels: ["Kind/Bug"]
assignees: ''
---
## Checks
* [ ] I added a descriptive title to this issue
* [ ] I have searched Google for similar issues and couldn't find anything
* [ ] I have read [the README](https://git.4rs.nl/awiteb/telepingbot/src/branch/master/README.md) and still think this is a bug
## Version
<!-- Report for the bug only if it's present in the latest version of Telepingbot.
If you are not using the latest version, please update and check if the bug is still present. -->
<!-- Run `rustc --version` to get the version -->
Rustc version: `...`
<!-- Run `telepingbot --version` to get the version, and make sure it's the latest one -->
Telepingbot version: `...`
## Description
<!-- A clear and concise description of what the bug is. -->
## Expected behavior
<!-- A clear and concise description of what you expected to happen. -->
## Actual behavior
<!-- A clear and concise description of what happens. -->

View file

@ -0,0 +1,13 @@
---
name: Feature request
about: Suggest an idea for Telepingbot
title: '...'
labels: ["Kind/Feature"]
assignees: ''
---
## Feature description
<!-- A clear and concise description of what the feature is, and why you think it is needed. -->
## Example
<!-- A clear and concise example of how the feature will be used. (If needed) -->

View file

@ -0,0 +1,12 @@
---
name: Question
about: Ask a question about Telepingbot
title: '...'
labels: ["Kind/Question"]
assignees: ''
---
## Question
<!-- Please provide a clear and concise description of your question. -->
<!-- If you are asking about a specific part of the code, please provide a link to the code. -->
<!-- If you are asking about a specific part of the documentation, please provide a link to the documentation. -->

View file

@ -0,0 +1,6 @@
## Issue
<!-- Copy the issue link from the issue you are fixing (e.g. https://git.4rs.nl/awiteb/telepingbot/issues/1) -->
This will fix {issue Forgejo link}
## How I am fixing it
<!-- A clear and concise description of how you are fixing the bug. -->

112
.forgejo/workflows/cd.yml Normal file
View file

@ -0,0 +1,112 @@
name: CD
on:
push:
tags:
- v[0-9]+.[0-9]+.[0-9]+
- v[0-9]+.[0-9]+.[0-9]+-rc.[0-9]+
jobs:
build-assets:
runs-on: debian
strategy:
matrix:
target:
- x86_64-unknown-linux-gnu
- x86_64-unknown-linux-musl
- aarch64-unknown-linux-gnu
- aarch64-unknown-linux-musl
- x86_64-pc-windows-gnu
steps:
- uses: actions/checkout@v4
with:
ref: master
fetch-depth: 1
- uses: https://codeberg.org/TheAwiteb/rust-action@v1.75
- name: Install musl-tools
run: |
apt-get update
apt-get install -y musl-tools
if: ${{ contains(matrix.target, 'musl') }}
- name: Install gcc-aarch64-linux-gnu linker
run: |
apt-get update
apt-get install -y gcc-aarch64-linux-gnu
if: ${{ contains(matrix.target, 'aarch64') }}
- name: Install gcc-mingw-w64 linker
run: |
apt-get update
apt-get install -y gcc-mingw-w64
if: ${{ contains(matrix.target, 'windows') }}
- name: Preparing the environment
run: |
BIN_NAME="$(echo $GITHUB_REPOSITORY | cut -d '/' -f 2)"
echo "BIN_NAME=$BIN_NAME" >> $GITHUB_ENV
mkdir -p release-dir
mkdir -p .cargo
echo 'target.aarch64-unknown-linux-gnu.linker = "aarch64-linux-gnu-gcc"' > .cargo/config.toml
echo 'target.aarch64-unknown-linux-musl.linker = "aarch64-linux-gnu-gcc"' >> .cargo/config.toml
- name: Install the target
run: rustup target install ${{ matrix.target }}
- name: Build the asset
run: |
APP_NAME="$BIN_NAME-$GITHUB_REF_NAME-${{ matrix.target }}"
cargo clean
cargo build --release --no-default-features --target ${{ matrix.target }}
cp target/${{ matrix.target }}/release/$BIN_NAME.exe release-dir/$APP_NAME.exe || true
cp target/${{ matrix.target }}/release/$BIN_NAME release-dir/$APP_NAME || true
cd release-dir
test -f $APP_NAME && sha256sum $APP_NAME > $APP_NAME.sha256 || true
test -f $APP_NAME.exe && sha256sum $APP_NAME.exe > $APP_NAME.exe.sha256 || true
- uses: actions/upload-artifact@v3
with:
name: ${{ env.GITHUB_SHA }}-${{ env.GITHUB_RUN_NUMBER }}
path: release-dir/
release:
needs: build-assets
runs-on: debian
steps:
- uses: actions/checkout@v4
with:
ref: master
fetch-depth: 0
fetch-tags: true
- uses: actions/download-artifact@v3
with:
name: ${{ env.GITHUB_SHA }}-${{ env.GITHUB_RUN_NUMBER }}
path: ${{ env.GITHUB_WORKSPACE }}/release-dir
- name: Install git-cliff
run: |
version="2.2.1"
wget "https://github.com/orhun/git-cliff/releases/download/v$version/git-cliff-$version-x86_64-unknown-linux-gnu.tar.gz"
tar -xvzf git-cliff-*.tar.gz
mv "git-cliff-$version/git-cliff" /usr/local/bin
rm -fr git-cliff-*
- name: Write changelog
run: |
git config user.name forgejo-actions
git config user.email forgejo-actions@noreply.localhost
echo 'TAG_CHANGELOG=$(if [[ $(git tag --sort=committerdate | tail -n 1) == *"-rc"* ]]; then git-cliff --strip all $(git tag --sort=committerdate | tail -n 2 | sed ":a; N; $!ba; s/\n/../g") | sed "s/## unreleased.*$//g"; else git-cliff -l --strip all | sed "s/^## \[.*$//g";fi)' | sed "s/\"/'/g" >> $GITHUB_ENV
if [[ $(git tag --sort=creatordate | tail -n 1) != *'-rc'* ]]; then
echo "The latest tag is not a release candidate, updating changelog for $GITHUB_REF_NAME"
git-cliff > CHANGELOG.md
git add CHANGELOG.md
git commit -m "Update changelog for $GITHUB_REF_NAME"
git push
echo "Changelog updated"
else
echo "The latest tag is a release candidate, not updating changelog"
fi
- name: Create Release
uses: actions/forgejo-release@v1
with:
direction: upload
url: https://git.4rs.nl
token: ${{ env.GITHUB_TOKEN }}
release-dir: release-dir
release-notes: ${{ env.TAG_CHANGELOG }}
prerelease: ${{ contains(env.GITHUB_REF_NAME, '-rc') }}

View file

@ -0,0 +1,36 @@
name: Write changelog
on:
push:
branches:
- 'master'
jobs:
write-changelog:
runs-on: debian
steps:
- uses: actions/checkout@v4
with:
ref: master
fetch-depth: 0
fetch-tags: true
- name: Install git-cliff
run: |
version="2.2.1"
wget "https://github.com/orhun/git-cliff/releases/download/v$version/git-cliff-$version-x86_64-unknown-linux-gnu.tar.gz"
tar -xvzf git-cliff-*.tar.gz
mv "git-cliff-$version/git-cliff" /usr/local/bin
rm -fr git-cliff-*
- name: Write changelog
run: |
git config user.name forgejo-actions
git config user.email forgejo-actions@noreply.localhost
git-cliff > CHANGELOG.md
if [[ $(git status | grep --extended-regexp '^\s+modified:\s+CHANGELOG.md$') ]]; then
git add CHANGELOG.md
git commit -m "chore(changelog): Update changelog"
git push
echo "Changelog updated"
else
echo "No changes to changelog"
fi

25
.forgejo/workflows/ci.yml Normal file
View file

@ -0,0 +1,25 @@
name: Rust CI
on:
push:
branches: [master]
pull_request:
branches: [master]
jobs:
rust_ci:
name: Rust CI
runs-on: debian
steps:
- uses: actions/checkout@v4
- uses: https://codeberg.org/TheAwiteb/rust-action@v1.75
- name: Check MSRV
run: cargo +1.75 build
- name: Build the source code
run: cargo build
- name: Check the code format
run: cargo fmt -- --check
- name: Run cargo-check
run: cargo check
- name: Run cargo-clippy
run: cargo clippy -- -D warnings

34
.github/workflows/auto_close_pr.yml vendored Normal file
View file

@ -0,0 +1,34 @@
name: Auto close PR
on:
pull_request:
types: [opened, reopened]
jobs:
close_pr:
name: Auto close PR
runs-on: ubuntu-latest
steps:
- name: Send close comment
run: |
curl -L \
-X POST \
-H "Accept: application/vnd.github+json" \
-H "Authorization: Bearer $PAT" \
-H "X-GitHub-Api-Version: 2022-11-28" \
https://api.github.com/repos/${{ github.repository }}/issues/${{ github.event.number }}/comments \
-d '{"body":"${{ env.BODY }}"}'
env:
PAT: ${{ secrets.PAT }}
BODY: This repository is mirror only and you cannot create a pull request for it. Please open your PR at https://git.4rs.nl/awiteb/telepingbot
- name: Close the PR
run: |
curl -L \
-X PATCH \
-H "Accept: application/vnd.github+json" \
-H "Authorization: Bearer $PAT" \
-H "X-GitHub-Api-Version: 2022-11-28" \
https://api.github.com/repos/${{ github.repository }}/pulls/${{ github.event.number }} \
-d '{"state":"closed"}'
env:
PAT: ${{ secrets.PAT }}