mirror of
https://github.com/Second-Hand-Friends/kleinanzeigen-bot.git
synced 2026-03-12 02:31:45 +01:00
initial import
This commit is contained in:
130
.github/workflows/build.yml
vendored
Normal file
130
.github/workflows/build.yml
vendored
Normal file
@@ -0,0 +1,130 @@
|
||||
# https://docs.github.com/en/free-pro-team@latest/actions/reference/workflow-syntax-for-github-actions
|
||||
name: Build
|
||||
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
- '**'
|
||||
tags-ignore:
|
||||
- '**'
|
||||
paths-ignore:
|
||||
- '**/*.md'
|
||||
pull_request:
|
||||
workflow_dispatch:
|
||||
# https://github.blog/changelog/2020-07-06-github-actions-manual-triggers-with-workflow_dispatch/
|
||||
|
||||
defaults:
|
||||
run:
|
||||
shell: bash
|
||||
|
||||
jobs:
|
||||
build:
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
os:
|
||||
- macos-latest
|
||||
- ubuntu-latest
|
||||
- windows-latest
|
||||
runs-on: ${{ matrix.os }}
|
||||
steps:
|
||||
- name: Git Checkout
|
||||
uses: actions/checkout@v2 #https://github.com/actions/checkout
|
||||
|
||||
- uses: actions/setup-python@v2
|
||||
with:
|
||||
python-version: "3.10"
|
||||
|
||||
- name: Install python dependencies
|
||||
run: |
|
||||
set -eux
|
||||
|
||||
python --version
|
||||
|
||||
pip install .[dev]
|
||||
|
||||
- name: bandit
|
||||
run: |
|
||||
set -eux
|
||||
bandit -c pyproject.toml --exclude '*/.eggs/*' -r .
|
||||
|
||||
- name: pylint
|
||||
run: |
|
||||
set -eux
|
||||
pip install pylint
|
||||
pylint kleinanzeigen_bot
|
||||
|
||||
- name: pytest
|
||||
run: |
|
||||
set -eux
|
||||
python -m pytest
|
||||
|
||||
- name: run kleinanzeigen_bot
|
||||
run: |
|
||||
echo "
|
||||
login:
|
||||
username: 'john.doe@example.com'
|
||||
password: 'such_a_secret'
|
||||
" > config.yaml
|
||||
|
||||
set -eux
|
||||
|
||||
python -m kleinanzeigen_bot help
|
||||
python -m kleinanzeigen_bot version
|
||||
python -m kleinanzeigen_bot verify
|
||||
|
||||
- name: py2exe
|
||||
if: startsWith(matrix.os, 'windows')
|
||||
run: |
|
||||
python setup.py py2exe
|
||||
ls -l dist
|
||||
|
||||
- name: run kleinanzeigen_bot.exe
|
||||
if: startsWith(matrix.os, 'windows')
|
||||
run: |
|
||||
set -eux
|
||||
|
||||
dist/kleinanzeigen-bot.exe help
|
||||
dist/kleinanzeigen-bot.exe version
|
||||
dist/kleinanzeigen-bot.exe verify
|
||||
|
||||
- name: "Delete previous 'latest' release"
|
||||
if: startsWith(matrix.os, 'windows') && github.ref == 'refs/heads/main'
|
||||
run: |
|
||||
set -eu
|
||||
|
||||
api_base_url="$GITHUB_API_URL/repos/$GITHUB_REPOSITORY"
|
||||
|
||||
# delete 'latest' github release
|
||||
release_id=$(curl -fsL -H "Authorization: token ${{ secrets.GITHUB_TOKEN }}" https://api.github.com/repos/$GITHUB_REPOSITORY/releases | jq -r '.[] | select(.name == "latest") | .id')
|
||||
if [[ -n $release_id ]]; then
|
||||
echo "Deleting release [$api_base_url/releases/$release_id]..."
|
||||
curl -H "Authorization: token ${{ secrets.GITHUB_TOKEN }}" -fsSL -X DELETE "$api_base_url/releases/$release_id"
|
||||
fi
|
||||
|
||||
# delete 'latest' git tag
|
||||
tag_url="$api_base_url/git/refs/tags/latest"
|
||||
if curl -H "Authorization: token ${{ secrets.GITHUB_TOKEN }}" -fsLo /dev/null --head "$tag_url"; then
|
||||
echo "Deleting tag [$tag_url]..."
|
||||
curl -H "Authorization: token ${{ secrets.GITHUB_TOKEN }}" -fsSL -X DELETE "$tag_url"
|
||||
fi
|
||||
|
||||
- name: "Create 'latest' Release"
|
||||
if: startsWith(matrix.os, 'windows') && github.ref == 'refs/heads/main'
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
run: |
|
||||
set -eux
|
||||
|
||||
# https://hub.github.com/hub-release.1.html
|
||||
hub release create "latest" \
|
||||
--prerelease \
|
||||
--message "latest" \
|
||||
--attach "dist/kleinanzeigen-bot.exe#kleinanzeigen-bot.exe"
|
||||
|
||||
- name: "Delete intermediate build artifacts"
|
||||
uses: geekyeggo/delete-artifact@1-glob-support # https://github.com/GeekyEggo/delete-artifact/
|
||||
with:
|
||||
name: "*"
|
||||
useGlob: true
|
||||
failOnError: false
|
||||
Reference in New Issue
Block a user