privacyguides.org/.github/workflows/release.yml

142 lines
4.2 KiB
YAML
Raw Normal View History

2023-03-21 22:56:27 +01:00
# Copyright (c) 2021-2023 Jonah Aragon <jonah@triplebit.net>
# Permission is hereby granted, free of charge, to any person obtaining a copy
# of this software and associated documentation files (the "Software"), to
# deal in the Software without restriction, including without limitation the
# rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
# sell copies of the Software, and to permit persons to whom the Software is
# furnished to do so, subject to the following conditions:
# The above copyright notice and this permission notice shall be included in
# all copies or substantial portions of the Software.
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
# FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE
# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
# IN THE SOFTWARE.
2022-08-25 03:24:49 +02:00
name: 📦 Releases
2023-07-27 22:54:41 +02:00
on:
2022-08-25 03:24:49 +02:00
push:
tags:
- '*'
jobs:
2023-06-03 02:01:34 +02:00
production:
name: Push release to production
2022-08-25 03:24:49 +02:00
runs-on: ubuntu-latest
permissions:
contents: write
2023-03-11 20:29:07 +01:00
2022-08-25 03:24:49 +02:00
steps:
2023-03-11 20:29:07 +01:00
- name: Checkout repository
uses: actions/checkout@v4
2023-03-11 20:29:07 +01:00
with:
fetch-depth: '0'
ssh-key: ${{ secrets.ACTIONS_SSH_KEY }}
submodules: 'true'
2023-06-03 02:01:34 +02:00
2023-04-14 22:58:01 +02:00
- name: Push to production branch
run: |
2023-04-14 10:31:32 +02:00
git push origin HEAD:production
2023-06-03 02:01:34 +02:00
build:
name: Create release packages
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v4
2023-06-03 02:01:34 +02:00
with:
fetch-depth: '0'
ssh-key: ${{ secrets.ACTIONS_SSH_KEY }}
submodules: 'true'
2023-03-11 20:29:07 +01:00
- name: Python setup
uses: actions/setup-python@v5
2023-03-11 20:29:07 +01:00
with:
python-version: '3.8'
2023-07-29 17:24:55 +02:00
cache: 'pipenv'
2023-03-11 20:29:07 +01:00
- name: Cache files
uses: actions/cache@v4.0.0
2023-03-11 20:29:07 +01:00
with:
key: ${{ github.ref }}
path: .cache
- name: Install Python dependencies
run: |
pip install pipenv
pipenv install
2023-07-27 22:54:41 +02:00
sudo apt install pngquant
2023-03-11 20:29:07 +01:00
- name: Build website
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
2023-07-27 22:54:41 +02:00
CARDS: false
2023-03-11 20:29:07 +01:00
run: |
pipenv run mkdocs build --config-file config/mkdocs-offline.yml
2023-03-11 20:29:07 +01:00
pipenv run mkdocs --version
- name: Package website
run: |
tar -czvf offline.tar.gz site
zip -r -q offline.zip site
- name: Upload tar.gz file
uses: actions/upload-artifact@v4
2023-03-11 20:29:07 +01:00
with:
name: offline.tar.gz
path: offline.tar.gz
- name: Upload zip file
uses: actions/upload-artifact@v4
2023-03-11 20:29:07 +01:00
with:
name: offline.zip
path: offline.zip
2023-03-12 02:33:39 +01:00
- name: Create ZIM File
uses: addnab/docker-run-action@v3
with:
2023-04-06 22:42:02 +02:00
image: ghcr.io/openzim/zim-tools:3.1.3
2023-03-12 02:33:39 +01:00
options: -v ${{ github.workspace }}:/data
run: |
zimwriterfs -w index.html -I assets/brand/PNG/Square/pg-yellow.png -l eng -t "Privacy Guides" -d "Your central privacy and security resource to protect yourself online." -c "Privacy Guides" -p "Jonah Aragon" -n "Privacy Guides" -e "https://github.com/privacyguides/privacyguides.org" /data/site /data/privacy_guides.zim
- name: Upload ZIM file
uses: actions/upload-artifact@v4
2023-03-12 02:33:39 +01:00
with:
name: privacy_guides.zim
path: privacy_guides.zim
2023-06-03 02:01:34 +02:00
release:
name: Create release notes
needs: build
runs-on: ubuntu-latest
permissions:
contents: write
steps:
- uses: actions/download-artifact@v4
with:
name: offline.tar.gz
- uses: actions/download-artifact@v4
with:
name: offline.zip
- uses: actions/download-artifact@v4
with:
name: privacy_guides.zim
2023-03-11 20:29:07 +01:00
- name: Create release notes
uses: ncipollo/release-action@v1
2022-08-25 03:24:49 +02:00
with:
generateReleaseNotes: true
token: ${{ secrets.REPO_TOKEN }}
2023-03-12 02:33:39 +01:00
artifacts: "offline.zip,offline.tar.gz,privacy_guides.zim"