Skip to content

update sha

update sha #335

Workflow file for this run

---
# Lint the code base and launch unit test at each push or pull request
name: Lint and test
on: # yamllint disable-line rule:truthy
push:
workflow_dispatch:
jobs:
linters:
runs-on: ubuntu-22.04
steps:
- uses: actions/checkout@v3
- name: Set up Python
uses: actions/setup-python@v4
with:
python-version: 3.9
- name: Install pre-commit
run: pip install pre-commit
- name: update pre-commit hooks to last version
run: |
currentRev=21d713f17712e46accf926c5c6f442251edb3cce
if ! grep -Eq "rev: ${currentRev}" .pre-commit-config.yaml; then
echo >&2 "Please update revision of pre-commit hooks in .pre-commit-config.yaml"
exit 1
fi
cp .pre-commit-config.yaml .pre-commit-config.yaml.bak
sed -i -E -e "s/rev: ${currentRev}/rev: ${GITHUB_SHA}/g" .pre-commit-config.yaml
- uses: ouzi-dev/commit-status-updater@v2
with:
name: lint
status: pending
- name: Run pre-commit
run: pre-commit run -a --hook-stage manual
- name: Restore pre
run: |
cp .pre-commit-config.yaml .pre-commit-config.yaml.bak
rm -f .pre-commit-config.yaml.bak
- name: Archive results
uses: actions/upload-artifact@v3
with:
name: linter-reports
path: |
logs/*.xml
logs/*.log
- name: Create Pull Request
uses: peter-evans/create-pull-request@v4
with:
branch: update/pre-commit-fixes
title: lint fixes
commit-message: Auto-update lint fixes
body: |
some auto fixes have been generated during pre-commit run
labels: updates
- uses: ouzi-dev/commit-status-updater@v2
if: always()
with:
name: lint
status: ${{ job.status }}
buildDockerImagesAndTest:
needs: linters
runs-on: ubuntu-22.04
strategy:
fail-fast: true
matrix:
vendor:
- ubuntu
- alpine
bashTarVersion:
- '4.4'
- '5.0'
- '5.1'
include:
- vendor: ubuntu
bashImage: ubuntu:20.04
options: -j 30
- vendor: alpine
bashTarVersion: 4.4
bashImage: amd64/bash:4.4-alpine3.18
options: -j 30
- vendor: alpine
bashTarVersion: 5.0
bashImage: amd64/bash:5.0-alpine3.18
options: -j 30
- vendor: alpine
bashTarVersion: 5.1
bashImage: amd64/bash:5.1-alpine3.18
options: -j 30
steps:
- name: Checkout
uses: actions/checkout@v3
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v2
- name: Login to DockerHub
uses: docker/login-action@v2
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_TOKEN }}
- uses: ouzi-dev/commit-status-updater@v2
with:
name: build bash-tools-${{matrix.vendor}}-${{matrix.bashTarVersion}}
status: pending
- name: Pull/Build/Push docker image
env:
BRANCH: ${{ github.ref }}
run: |
./bin/buildPushDockerImage \
--vendor "${{matrix.vendor}}" \
--bash-version "${{matrix.bashTarVersion}}" \
--bash-base-image "${{matrix.bashImage}}" \
--branch-name "${BRANCH}" \
--push -vvv
- name: Check image
run: |
docker run --rm \
"build:bash-tools-${{matrix.vendor}}-${{matrix.bashTarVersion}}" bash \
--version
- name: run unit tests
run: |
chmod -R 777 logs
# shellcheck disable=SC2266
USER_ID=1000 \
GROUP_ID=1000 \
./bin/test \
-vvv \
--vendor "${{matrix.vendor}}" \
--bash-version "${{matrix.bashTarVersion}}" \
--bash-base-image "${{matrix.bashImage}}" \
--branch-name "${BRANCH}" \
${{matrix.options}} --report-formatter junit -o logs -r src --ci
- name: Upload Test Results
if: always()
uses: actions/upload-artifact@v3
with:
name: Test Results ${{matrix.vendor}} ${{matrix.bashTarVersion}}
path: logs/report.xml
- uses: ouzi-dev/commit-status-updater@v2
if: always()
with:
name: build bash-tools-${{matrix.vendor}}-${{matrix.bashTarVersion}}
status: ${{ job.status }}
publishTestResults:
name: 'Publish Tests Results'
if: ${{ always() }}
needs: [linters, buildDockerImagesAndTest]
runs-on: ubuntu-latest
permissions:
checks: write
# needed by ouzi-dev/commit-status-updater@v2
statuses: write
# only needed unless run with comment_mode: off
pull-requests: write
steps:
- name: Download Artifacts
uses: actions/download-artifact@v3
with:
name: artifacts
path: artifacts
- name: Checkstyle aggregation
uses: lcollins/[email protected]
with:
path: 'artifacts/**/*.xml'
# run this action to get the workflow conclusion
# You can get the conclusion via env (env.WORKFLOW_CONCLUSION)
- uses: technote-space/workflow-conclusion-action@v3
- uses: ouzi-dev/commit-status-updater@v2
with:
name: build
# neutral, success, skipped, cancelled, timed_out, action_required, failure
status: ${{ env.WORKFLOW_CONCLUSION }}