refactor: more API/naming work #1695
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: ci | |
on: | |
pull_request: | |
push: | |
branches: | |
- master | |
jobs: | |
pre-commit: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v3 | |
with: # for gitlint | |
ref: ${{ github.event.pull_request.head.sha }} | |
fetch-depth: 0 | |
- uses: actions/setup-python@v4 | |
with: | |
python-version: ">=3.7" | |
cache: pip | |
cache-dependency-path: | | |
.github/requirements.txt | |
test/requirements*.txt | |
- uses: actions/cache@v3 | |
with: | |
path: ~/.cache/pre-commit | |
key: pre-commit-${{hashFiles('.pre-commit-config.yaml')}} | |
- name: Install dependencies | |
run: | | |
python3 -m venv venv # for venv-run | |
source venv/bin/activate | |
python3 -m pip install -Ur .github/requirements.txt | |
- run: venv/bin/gitlint --commits "origin/$GITHUB_BASE_REF..HEAD" | |
if: github.event_name == 'pull_request' | |
- name: Run pre-commit checks | |
run: | | |
source venv/bin/activate | |
pre-commit run --color=always --all-files --show-diff-on-failure | |
distcheck: | |
runs-on: ubuntu-latest | |
strategy: | |
matrix: | |
include: | |
- dist: alpine | |
- dist: centos7 | |
- dist: debian10 | |
- dist: debian10 | |
bsd: true | |
network: none | |
- dist: fedoradev | |
- dist: ubuntu14 | |
steps: | |
- uses: actions/checkout@v3 | |
- uses: GoogleCloudPlatform/release-please-action@v3 | |
with: | |
release-type: simple | |
pull-request-title-pattern: "chore: release${component} ${version}" | |
id: release | |
if: github.event_name == 'push' && matrix.dist == 'alpine' | |
- name: Do release preparations | |
run: | | |
version=$(cat version.txt) | |
sed -i -re "s/^(BASH_COMPLETION_VERSINFO=).*/\\1(${version//./ })/" bash_completion | |
sed -i -re "s/^(AC_INIT\(.*\[)[0-9.]+(\].*)/\\1$version\\2/" configure.ac | |
git config user.name $(git log -1 --format=format:%an) | |
git config user.email $(git log -1 --format=format:%ae) | |
git commit --message="chore: bump release in dist files" bash_completion configure.ac | |
git tag --force ${{steps.release.outputs.tag_name}} | |
git push | |
git push --tags --force | |
if: steps.release.outputs.release_created | |
# A "container" workflow config would be cleaner here, but comes with | |
# some restrictions/oddities: changes root's $HOME to /github/home | |
# without changing the actual home dir that can cause some problems, | |
# and does not provide a way to run with --network none. | |
# fedoradev unconfined: https://bugzilla.redhat.com/1900021 | |
- name: Run main build | |
run: >- | |
docker run | |
--rm | |
--tty | |
--env CI=true | |
--env DIST=${{matrix.dist}} | |
--env BSD=${{matrix.bsd}} | |
--env PYTESTFLAGS="--verbose -p no:cacheprovider" | |
--env NETWORK=$NETWORK | |
${NETWORK:+--network $NETWORK} | |
$(test $DIST = fedoradev && echo --security-opt seccomp=unconfined) | |
--volume $PWD:/usr/src/bash-completion | |
--workdir /usr/src/bash-completion | |
ghcr.io/scop/bash-completion/test:${{matrix.dist}} | |
test/docker/entrypoint.sh | |
env: | |
DIST: ${{matrix.dist}} | |
NETWORK: ${{matrix.network}} | |
- name: Upload release assets | |
run: | | |
set -x | |
upload_url="${{steps.release.outputs.upload_url}}" | |
tarball="bash-completion-$(cat version.txt).tar.xz" | |
curl \ | |
--header "Authorization: Bearer ${{secrets.GITHUB_TOKEN}}" \ | |
--header "Accept: application/vnd.github.v3+json" \ | |
--header "Content-Type: application/x-xz-compressed-tar" \ | |
--data-binary "@$tarball" \ | |
"${upload_url%{*}?name=$tarball" | |
if: steps.release.outputs.release_created | |
- uses: actions/upload-artifact@v2 | |
with: | |
path: bash-completion-*.tar.xz | |
if: matrix.dist == 'alpine' |