5 Commits

Author SHA1 Message Date
Arne Jørgensen 1623ba6171 fix: Remove problem matcher after run (#16) 2020-12-06 19:10:45 +00:00
Bruno Paz bf7fe9f9b9 feat: misc updates 2020-12-06 09:54:22 +00:00
dependabot[bot] b56d18750c build(deps): bump hadolint/hadolint (#12)
Bumps hadolint/hadolint from v1.17.5-alpine to v1.19.0-alpine.

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2020-12-06 09:47:34 +00:00
Bruno Paz 37cdec0849 chore: update README and CI pipeline 2020-12-06 09:46:26 +00:00
Arne Jørgensen 7e374b112f fix: Fix problem matcher (#14) 2020-12-05 18:38:01 +00:00
5 changed files with 69 additions and 59 deletions
+22 -46
View File
@@ -10,60 +10,34 @@ env:
jobs:
lint:
runs-on: ubuntu-latest
container: pipelinecomponents/hadolint:latest
name: Lint
runs-on: ubuntu-20.04
container: pipelinecomponents/hadolint:0.10.1
steps:
- uses: actions/checkout@v1
- uses: actions/checkout@v2
- name: Run hadolint
run: hadolint Dockerfile
build:
runs-on: ubuntu-latest
needs: ['lint']
build-test:
name: Build and Test
runs-on: ubuntu-20.04
needs: ["lint"]
steps:
- uses: actions/checkout@v1
- uses: actions/checkout@v2
- name: Build Docker image
run: docker build -t $TEST_IMAGE_NAME .
- name: Save Docker image artifact
run: docker save -o action.tar $TEST_IMAGE_NAME
- name: Upload image artifact
uses: actions/upload-artifact@master
with:
name: action-image
path: action.tar
test:
name: Unit Tests
runs-on: ubuntu-latest
needs: build
steps:
- uses: actions/checkout@v1
- name: Pull Image artifact
uses: actions/download-artifact@master
with:
name: action-image
- name: Load image into docker context
run: docker load -i action.tar
- name: Get Image Name
id: image_name
run: echo "##[set-output name=image;]$(echo $TEST_IMAGE_NAME)"
- name: Run Structure tests
uses: brpaz/structure-tests-action@master
uses: brpaz/structure-tests-action@v1.1.2
with:
image: ${{ steps.image_name.outputs.image }}
image: ${{ env.TEST_IMAGE_NAME }}
integration:
integration-tests:
name: Integration Tests
runs-on: ubuntu-latest
needs: test
runs-on: ubuntu-20.04
needs: build-test
steps:
- uses: actions/checkout@v1
- uses: actions/checkout@v2
- name: Run integration test
uses: ./
@@ -73,11 +47,13 @@ jobs:
release:
if: github.event_name == 'push' && github.ref == 'refs/heads/master'
name: Release
runs-on: ubuntu-latest
needs: integration
runs-on: ubuntu-20.04
needs: integration-tests
steps:
- uses: actions/checkout@v1
- name: Semantic Release
uses: brpaz/action-semantic-release@master
- uses: actions/checkout@v2
- uses: cycjimmy/semantic-release-action@v2
with:
extra_plugins: |
@semantic-release/git
env:
GITHUB_TOKEN: ${{secrets.GITHUB_TOKEN}}
+2 -2
View File
@@ -1,6 +1,6 @@
FROM hadolint/hadolint:v1.17.5-alpine
FROM hadolint/hadolint:v1.19.0-alpine
COPY LICENSE README.md /
COPY LICENSE README.md problem-matcher.json /
COPY hadolint.sh /usr/local/bin/hadolint.sh
ENTRYPOINT [ "/usr/local/bin/hadolint.sh" ]
+26 -9
View File
@@ -1,26 +1,35 @@
# Hadolint GitHub Action
# Hadolint Action
> Action that runs [Hadolint](https://github.com/hadolint/hadolint) Dockerfile linting tool.
> GitHub Action that runs [Hadolint](https://github.com/hadolint/hadolint) Dockerfile linting tool.
[![GitHub Action](https://img.shields.io/badge/GitHub-Action-blue?style=for-the-badge)](https://github.com/features/actions)
[![License](https://img.shields.io/badge/License-MIT-yellow.svg?style=for-the-badge)](LICENSE)
[![Commitizen friendly](https://img.shields.io/badge/commitizen-friendly-brightgreen.svg?style=for-the-badge)](http://commitizen.github.io/cz-cli/)
[![semantic-release](https://img.shields.io/badge/%20%20%F0%9F%93%A6%F0%9F%9A%80-semantic--release-e10079.svg?style=for-the-badge)](https://github.com/semantic-release/semantic-release?style=for-the-badge)
[![GitHub Actions](https://github.com/brpaz/hadolint-action/workflows/CI/badge.svg?style=for-the-badge)](https://github.com/brpaz/hadolint-action/actions)
[![GitHub Workflow Status](https://img.shields.io/github/workflow/status/brpaz/hadolint-action/CI?style=for-the-badge)](https://github.com/brpaz/hadolint-action/action)
## Usage
Add the following step to your workflow configuration:
```yml
steps:
uses: brpaz/hadolint-action@master
- uses: brpaz/hadolint-action@v1.2.1
with:
dockerfile: Dockerfile
```
## Inputs
**`dockerfile`**
| Name | Description | Default |
|------------ |----------------------------------------- |-------------- |
| dockerfile | The path to the Dockerfile to be tested | ./Dockerfile |
## Hadolint Configuration
To configure Hadolint (for example ignore rules), you can create an `.hadolint.yaml` file in the root of your repository. Please check the Hadolint [documentation](https://github.com/hadolint/hadolint#configure).
The path to the Dockerfile to be tested. By default it will look for a Dockerfile in the current directory.
## 🤝 Contributing
@@ -32,11 +41,19 @@ Contributions are what make the open source community such an amazing place to b
4. Push to the Branch (`git push origin feature/AmazingFeature`)
5. Open a Pull Request
## Useful Resources
## 💛 Support the project
* [Building actions - GitHub Help](https://help.github.com/en/articles/building-actions)
* [actions/toolkit: The GitHub ToolKit for developing GitHub Actions.](https://github.com/actions/toolkit)
If this project was useful to you in some form, I would be glad to have your support. It will help to keep the project alive and to have more time to work on Open Source.
The sinplest form of support is to give a ⭐️ to this repo.
You can also contribute with [GitHub Sponsors](https://github.com/sponsors/brpaz).
[![GitHub Sponsors](https://img.shields.io/badge/GitHub%20Sponsors-Sponsor%20Me-red?style=for-the-badge)](https://github.com/sponsors/brpaz)
Or if you prefer a one time donation to the project, you can simple:
<a href="https://www.buymeacoffee.com/Z1Bu6asGV" target="_blank"><img src="https://www.buymeacoffee.com/assets/img/custom_images/orange_img.png" alt="Buy Me A Coffee" style="height: auto !important;width: auto !important;" ></a>
## Author
👤 **Bruno Paz**
+18 -1
View File
@@ -1,5 +1,22 @@
#!/bin/sh
echo '::add-matcher::problem-matcher.json'
# The problem-matcher definition must be present in the repository
# checkout (outside the Docker container running hadolint). We create
# a temporary folder and copy problem-matcher.json to it and make it
# readable.
TMP_FOLDER=$(mktemp -d -p .)
cp /problem-matcher.json "${TMP_FOLDER}"
chmod -R a+rX "${TMP_FOLDER}"
# After the run has finished we remove the problem-matcher.json from
# the repository so we don't leave the checkout dirty. We also remove
# the matcher so it won't take effect in later steps.
cleanup() {
echo "::remove-matcher owner=brpaz/hadolint-action::"
rm -rf "${TMP_FOLDER}"
}
trap cleanup EXIT
echo "::add-matcher::${TMP_FOLDER}/problem-matcher.json"
hadolint "$@"
+1 -1
View File
@@ -1,7 +1,7 @@
{
"problemMatcher": [
{
"owner": "hadolint",
"owner": "brpaz/hadolint-action",
"pattern": [
{
"regexp": "(.*)\\:(\\d+)\\s(.*)",