Browse Source

automation

pull/5/head
Daniel Gibbs 2 years ago
parent
commit
ff99fde35c
No known key found for this signature in database GPG Key ID: 4D812BAB6228BBA6
  1. 19
      .editorconfig
  2. 9
      .github/dependabot.yml
  3. 10
      .github/workflows/codacy-analysis.yml
  4. 54
      .github/workflows/docker-publish.yml
  5. 55
      .github/workflows/snyk-container.yml
  6. 29
      .github/workflows/super-linter.yml
  7. 11
      .yamllint.yml
  8. 21
      LICENSE

19
.editorconfig

@ -6,8 +6,21 @@ root = true
[*]
charset = utf-8
indent_style = tab
indent_size = 4
indent_style = space
indent_size = 2
trim_trailing_whitespace = true
end_of_line = lf
insert_final_newline = true
insert_final_newline = true
# YAML Files
[*.{yml,yaml}]
indent_size = 2
# JSON Files
[*.{json,json5,webmanifest}]
indent_size = 2
# BASH Files
[*.{.sh}]
indent_style = tab
indent_size = 4

9
.github/dependabot.yml

@ -6,4 +6,11 @@ updates:
directory: "/"
schedule:
# Check for updates to GitHub Actions every weekday
interval: "daily"
interval: "daily"
- package-ecosystem: "docker"
# Look for a `Dockerfile` in the `root` directory
directory: "/"
# Check for updates once a week
schedule:
interval: "weekly"

10
.github/workflows/codacy.yml → .github/workflows/codacy-analysis.yml

@ -15,12 +15,12 @@ name: Codacy Security Scan
on:
push:
branches: [ "main" ]
branches: ["main","master"]
pull_request:
# The branches below must be a subset of the branches above
branches: [ "main" ]
branches: ["main","master"]
schedule:
- cron: '28 22 * * 4'
- cron: "28 22 * * 4"
permissions:
contents: read
@ -30,7 +30,7 @@ jobs:
permissions:
contents: read # for actions/checkout to fetch code
security-events: write # for github/codeql-action/upload-sarif to upload SARIF results
actions: read # only required for a private repository by github/codeql-action/upload-sarif to get the Action run status
actions: read # only required for a private repository by github/codeql-action/upload-sarif to get the Action run status
name: Codacy Security Scan
runs-on: ubuntu-latest
steps:
@ -40,7 +40,7 @@ jobs:
# Execute Codacy Analysis CLI and generate a SARIF output with the security issues identified during the analysis
- name: Run Codacy Analysis CLI
uses: codacy/codacy-analysis-cli-action@d840f886c4bd4edc059706d09c6a1586111c540b
uses: codacy/codacy-analysis-cli-action@v4.2.0
with:
# Check https://github.com/codacy/codacy-analysis-cli#project-token to get your project token from your Codacy repository
# You can also omit the token and run the tools that support default configurations

54
.github/workflows/docker-publish.yml

@ -1,47 +1,61 @@
name: ci
name: Docker Publish
on:
push:
branches:
- 'main'
branches: ["main","master"]
schedule:
- cron: '0 0 * * *'
- cron: "0 0 * * *"
jobs:
docker:
runs-on: ubuntu-latest
steps:
-
name: Checkout
- name: Checkout
uses: actions/checkout@v3
-
name: Set up QEMU
- name: Set up QEMU
uses: docker/setup-qemu-action@v2
-
name: Set up Docker Buildx
- name: Set up Docker Buildx
uses: docker/[email protected]
-
name: Login to DockerHub
- name: Login to DockerHub
uses: docker/[email protected]
with:
username: ${{ secrets.DOCKER_HUB_USERNAME }}
password: ${{ secrets.DOCKER_HUB_ACCESS_TOKEN }}
-
name: Login to GitHub Container Registry
- name: Login to GitHub Container Registry
uses: docker/[email protected]
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
-
name: Build and push
- name: Build and push (Ubuntu 22.04)
uses: docker/[email protected]
with:
context: .
file: ./Dockerfile.ubuntu-2204
platforms: linux/amd64
push: true
tags: |
gameservermanagers/linuxgsm:latest
gameservermanagers/linuxgsm:ubuntu-22.04
ghcr.io/gameservermanagers/linuxgsm:latest
ghcr.io/gameservermanagers/linuxgsm:ubuntu-22.04
gameservermanagers/steamcmd:latest
gameservermanagers/steamcmd:ubuntu-22.04
ghcr.io/gameservermanagers/steamcmd:latest
ghcr.io/gameservermanagers/steamcmd:ubuntu-22.04
- name: Build and push (Ubuntu 20.04)
uses: docker/[email protected]
with:
context: .
file: ./Dockerfile.ubuntu-2004
platforms: linux/amd64
push: true
tags: |
gameservermanagers/steamcmd:ubuntu-20.04
ghcr.io/gameservermanagers/steamcmd:ubuntu-20.04
- name: Build and push (Ubuntu 18.04)
uses: docker/[email protected]
with:
context: .
file: ./Dockerfile.ubuntu-1804
platforms: linux/amd64
push: true
tags: |
gameservermanagers/steamcmd:ubuntu-18.04
ghcr.io/gameservermanagers/steamcmd:ubuntu-18.04

55
.github/workflows/snyk-container.yml

@ -0,0 +1,55 @@
# This workflow uses actions that are not certified by GitHub.
# They are provided by a third-party and are governed by
# separate terms of service, privacy policy, and support
# documentation.
# A sample workflow which checks out the code, builds a container
# image using Docker and scans that image for vulnerabilities using
# Snyk. The results are then uploaded to GitHub Security Code Scanning
#
# For more examples, including how to limit scans to only high-severity
# issues, monitor images for newly disclosed vulnerabilities in Snyk and
# fail PR checks for new vulnerabilities, see https://github.com/snyk/actions/
name: Snyk Container
on:
push:
branches: ["main","master"]
pull_request:
# The branches below must be a subset of the branches above
branches: ["main","master"]
schedule:
- cron: "45 1 * * 4"
permissions:
contents: read
jobs:
snyk:
permissions:
contents: read # for actions/checkout to fetch code
security-events: write # for github/codeql-action/upload-sarif to upload SARIF results
actions: read # only required for a private repository by github/codeql-action/upload-sarif to get the Action run status
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Build a Docker image
run: docker build -t gameservermanagers/steamcmd -f Dockerfile.ubuntu-2204 .
- name: Run Snyk to check Docker image for vulnerabilities
# Snyk can be used to break the build when it detects vulnerabilities.
# In this case we want to upload the issues to GitHub Code Scanning
continue-on-error: true
uses: snyk/actions/docker@master
env:
# In order to use the Snyk Action you will need to have a Snyk API token.
# More details in https://github.com/snyk/actions#getting-your-snyk-token
# or you can signup for free at https://snyk.io/login
SNYK_TOKEN: ${{ secrets.SNYK_TOKEN }}
with:
image: gameservermanagers/steamcmd
args: --file=Dockerfile.ubuntu-2204
- name: Upload result to GitHub Code Scanning
uses: github/codeql-action/upload-sarif@v2
with:
sarif_file: snyk.sarif

29
.github/workflows/super-linter.yml

@ -0,0 +1,29 @@
# This workflow executes several linters on changed files based on languages used in your code base whenever
# you push a code or open a pull request.
#
# You can adjust the behavior by modifying this file.
# For more information, see:
# https://github.com/github/super-linter
name: Lint Code Base
on:
push:
branches: ["main","master"]
pull_request:
branches: ["main","master"]
jobs:
run-lint:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v3
with:
# Full git history is needed to get a proper list of changed files within `super-linter`
fetch-depth: 0
- name: Lint Code Base
uses: github/super-linter@v4
env:
VALIDATE_ALL_CODEBASE: false
DEFAULT_BRANCH: "main"
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

11
.yamllint.yml

@ -0,0 +1,11 @@
---
extends: default
rules:
line-length: disable
comments: disable
ignore: |
.tox/
.cache/
.github/workflows

21
LICENSE

@ -0,0 +1,21 @@
MIT License
Copyright (c) 2017-2022 Daniel Gibbs
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 NONINFRINGEMENT. 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.
Loading…
Cancel
Save