Create a new release #39
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Create a new release | |
on: | |
workflow_dispatch: | |
jobs: | |
prepare: | |
runs-on: ubuntu-latest | |
outputs: | |
tag: ${{ steps.tag.outputs.tag }} | |
languages: ${{ steps.load-languages.outputs.languages }} | |
steps: | |
- name: Checkout repository | |
uses: actions/checkout@v2 | |
- name: Set up Node.js | |
uses: actions/setup-node@v3 | |
with: | |
node-version: '20' | |
- name: Install jq | |
run: sudo apt-get install -y jq | |
- name: Install npm dependencies | |
run: npm install | |
- name: Configure git | |
run: | | |
git config --global user.name "github-actions[bot]" | |
git config --global user.email "github-actions[bot]@users.noreply.github.com" | |
- name: Tag the repository | |
id: tag | |
run: | | |
# See https://docs.github.com/en/get-started/using-git/dealing-with-special-characters-in-branch-and-tag-names | |
TAG=v$(date -Iseconds | sed 's/[T:\+]/-/g') | |
CALVER=$(date +'%y.%m.%d.%H') | |
echo "$TAG" | |
echo "tag=$TAG" >> $GITHUB_OUTPUT | |
echo "calver=$CALVER" >> $GITHUB_OUTPUT | |
git tag -a $TAG -m "Published version $TAG" ${GITHUB_SHA} | |
git push origin $TAG | |
- name: Load Languages | |
id: load-languages | |
run: | | |
languages=$(jq -r '.[].language' languages.json | jq -R -s -c 'split("\n") | map(select(. != ""))') | |
echo "languages=$languages" >> $GITHUB_OUTPUT | |
- name: Generate markdown table | |
id: generate_markdown | |
run: | | |
./tools/generate-downloads-table.sh > table.md | |
cat table.md | |
- name: Write to downloads.md | |
id: write_downloads_md | |
shell: bash | |
run: | | |
cat downloads-preamble.md table.md > downloads.md | |
rm table.md | |
cat downloads.md | |
- name: Create pull request | |
uses: peter-evans/create-pull-request@v4 | |
with: | |
token: ${{ secrets.GITHUB_TOKEN }} | |
title: "Update downloads.md with list of .zip files" | |
body: "This PR updates the downloads.md file with a table listing all .zip files." | |
- name: Release | |
uses: softprops/action-gh-release@v2 | |
with: | |
name: ${{ steps.tag.outputs.calver }} | |
tag_name: ${{ steps.tag.outputs.tag }} | |
prerelease: true | |
generate_release_notes: true | |
convert: | |
needs: prepare | |
runs-on: ubuntu-latest | |
strategy: | |
max-parallel: 1 | |
matrix: | |
source_language: ${{fromJson(needs.prepare.outputs.languages)}} | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v2 | |
- name: Set up Node.js | |
uses: actions/setup-node@v3 | |
with: | |
node-version: '20' | |
- name: Set up Python | |
uses: actions/setup-python@v4 | |
with: | |
python-version: '3.9' | |
- name: Create .env file | |
run: | | |
cp .env.example .env | |
sed -i 's/^DICT_NAME=.*/DICT_NAME=kty/' .env | |
- name: Install jq | |
run: sudo apt-get install -y jq | |
- name: Install gzip | |
run: sudo apt-get install -y gzip | |
- name: Run auto.sh script | |
run: ./auto.sh "${{ matrix.source_language }}" ? | |
- name: Run merge-ipa | |
run: node merge-ipa.js | |
- name: Generate list of .zip files | |
id: generate_file_list | |
run: | | |
find data/language -type f -name '*.zip' > zip_files.txt | |
cat zip_files.txt | |
echo "zip_files<<EOF" >> $GITHUB_OUTPUT | |
cat zip_files.txt >> $GITHUB_OUTPUT | |
echo "EOF" >> $GITHUB_OUTPUT | |
- name: Upload Release Asset | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
run: | | |
for f in ${{ steps.generate_file_list.outputs.zip_files }}; do | |
gh release upload ${{ needs.prepare.outputs.tag }} $f | |
done |