Skip to content

Commit

Permalink
Initial commit
Browse files Browse the repository at this point in the history
  • Loading branch information
gpfister committed Oct 12, 2024
0 parents commit 91e2a4b
Show file tree
Hide file tree
Showing 32 changed files with 1,450 additions and 0 deletions.
21 changes: 21 additions & 0 deletions .devcontainer/Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
#
# gp-pico-devenv
# Copyright (c) 2023-2024, Greg PFISTER. MIT License.
#
# 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.
#

FROM ghcr.io/gp-devenv/gp-docker-devenv:22.04

USER vscode
WORKDIR /workspace

EXPOSE 80

ENTRYPOINT [ "sudo", "/entrypoint.sh" ]
53 changes: 53 additions & 0 deletions .devcontainer/devcontainer.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
//
// gp-pico-devenv
// Copyright (c) 2023-2024, Greg PFISTER. MIT License.
//
// 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.
//

// For format details, see https://aka.ms/devcontainer.json. For config options, see the README at:
// https://github.com/microsoft/vscode-dev-containers/tree/v0.231.6/containers/ubuntu
{
"dockerComposeFile": "docker-compose.yaml",
"service": "gp-pico-devenv",
"workspaceFolder": "/workspace",
"containerUser": "vscode",

// Customizations
"customizations": {
"vscode": {
// VSCode settings
"settings": {
"remote.localPortHost": "allInterfaces"
},

// Extensions
"extensions": [
"ms-azuretools.vscode-docker",
"donjayamanne.githistory",
"eamodio.gitlens",
"yzhang.markdown-all-in-one",
"hbenl.vscode-mocha-test-adapter",
"quicktype.quicktype",
"esbenp.prettier-vscode",
"Gruntfuggly.todo-tree",
"DotJoshJohnson.xml",
"redhat.vscode-yaml",
"github.vscode-pull-request-github"
]
}
},

// Use 'postCreateCommand' to run commands after the container is created.
// "postAttachCommand": "mosquitto -c /etc/mosquitto/mosquitto.conf -d",dock

// Comment out to connect as root instead. More info: https://aka.ms/vscode-remote/containers/non-root.
"remoteUser": "vscode",
"updateRemoteUserUID": false
}
40 changes: 40 additions & 0 deletions .devcontainer/docker-compose.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
#
# gp-pico-devenv
# Copyright (c) 2023-2024, Greg PFISTER. MIT License.
#
# 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.
#

name: gp-pico-devenv

# Services
services:
gp-pico-devenv:
container_name: gp-pico-devenv
user: vscode
privileged: true
build:
dockerfile: Dockerfile
context: .
volumes:
- ..:/workspace
- gp-pico-devenv-home:/home
- gp-pico-devenv-docker-data:/var/lib/docker
networks:
- gp-devenv-net

volumes:
gp-pico-devenv-home:
name: gp-pico-devenv-home
gp-pico-devenv-docker-data:
name: gp-pico-devenv-docker-data

networks:
gp-devenv-net:
name: gp-devenv-net
40 changes: 40 additions & 0 deletions .github/ISSUE_TEMPLATE/bug_report.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
---
name: Bug report
about: Create a report to help us improve
title: 'Bug: '
labels: 'bug'
assignees: ''
---

## Describe the bug
A clear and concise description of what the bug is.

## To Reproduce
Steps to reproduce the behavior:

1. Go to '...'
2. Click on '....'
3. Scroll down to '....'
4. See error

## Expected behavior
A clear and concise description of what you expected to happen.

## Screenshots
If applicable, add screenshots to help explain your problem.

## Desktop (please complete the following information)

- OS: [e.g. iOS]
- Browser [e.g. chrome, safari]
- Version [e.g. 22]

## Smartphone (please complete the following information)

- Device: [e.g. iPhone6]
- OS: [e.g. iOS8.1]
- Browser [e.g. stock browser, safari]
- Version [e.g. 22]

## Additional context
Add any other context about the problem here.
19 changes: 19 additions & 0 deletions .github/ISSUE_TEMPLATE/feature_request.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
---
name: Feature request
about: Suggest an idea for this project
title: 'Feature: '
labels: 'enhancement'
assignees: ''
---

## Describe your requirement. Will it solve something ?
A clear and concise description of your requirement. Ex. I'm always frustrated when [...]

## Describe the solution you'd like
A clear and concise description of what you want to happen.

## Describe alternatives you've considered
A clear and concise description of any alternative solutions or features you've considered.

## Additional context
Add any other context or screenshots about the feature request here.
19 changes: 19 additions & 0 deletions .github/ISSUE_TEMPLATE/task.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
---
name: Technical task
about: Code refactoring, CI/CD workflows, ...
title: 'Task: '
labels: 'task'
assignees: ''
---

## Describe your requirement. Will it solve something ?
A clear and concise description of your requirement. Ex. I'm always frustrated when [...]

## Describe the solution you'd like
A clear and concise description of what you want to happen.

## Describe alternatives you've considered
A clear and concise description of any alternative solutions or features you've considered.

## Additional context
Add any other context or screenshots about the feature request here.
83 changes: 83 additions & 0 deletions .github/workflows/dispatch.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,83 @@
#
# gp-pico-devenv
# Copyright (c) 2023-2024, Greg PFISTER. MIT License.
#
# 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.
#

# Build and validate

name: Daily build

on:
workflow_dispatch:
inputs:
ubuntuVersion:
description: Ubuntu version
required: true
type: string

jobs:
deploy:
name: Push ghcr.io/gp-devenv/gp-pico-devenv
runs-on: ubuntu-22.04
strategy:
matrix:
picoSDKVersion: ['2.0.0']
steps:
- name: Checkout
uses: actions/checkout@v4
with:
ref: '1.0.0'
- name: Setup buildx
run: (cd src && ./scripts/buildx/setup.sh)
- name: Authenticating
run: echo $GHCR_IO_TOKEN | docker login ghcr.io -u gpfister --password-stdin
env:
GHCR_IO_TOKEN: ${{ secrets.ghcr_io_token }}
- name: Build and push to ghcr.io/gp-devenv/gp-pico-devenv:${{ github.event.inputs.ubuntuVersion }}-${{ matrix.picoSDKVersion }}
run: (cd src && ./scripts/buildx/push.sh $UBUNTU_VERSION $PICO_SDK_VERSION)
env:
UBUNTU_VERSION: ${{ github.event.inputs.ubuntuVersion }}
PICO_SDK_VERSION: ${{ matrix.picoSDKVersion }}
# - name: Dispatch to ghcr.io/gp-devenv/gp-firebase-devenv repository (1.x)
# run: |
# curl -X POST \
# -H "Authorization: Bearer $GHCR_IO_TOKEN" \
# -H "X-Github-Api-Version: 2022-11-28" \
# -H "Content-Type: application/json" \
# https://api.github.com/repos/gp-devenv/gp-firebase-devenv/actions/workflows/dispatch-1.yaml/dispatches \
# --data '{"ref":"master","inputs":{"ubuntuVersion":"${{ github.event.inputs.ubuntuVersion }}","picoSDKVersion":"${{ matrix.picoSDKVersion }}"}}'
# env:
# GHCR_IO_TOKEN: ${{secrets.ghcr_io_token}}
# - name: Dispatch to ghcr.io/gp-devenv/gp-angular-devenv repository (1.x)
# run: |
# curl -X POST \
# -H "Authorization: Bearer $GHCR_IO_TOKEN" \
# -H "X-Github-Api-Version: 2022-11-28" \
# -H "Content-Type: application/json" \
# https://api.github.com/repos/gp-devenv/gp-angular-devenv/actions/workflows/dispatch-1.yaml/dispatches \
# --data '{"ref":"master","inputs":{"ubuntuVersion":"${{ github.event.inputs.ubuntuVersion }}","picoSDKVersion":"${{ matrix.picoSDKVersion }}"}}'
# env:
# GHCR_IO_TOKEN: ${{secrets.ghcr_io_token}}
cleanup:
runs-on: ubuntu-22.04
needs: deploy
continue-on-error: true
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Cleanup
uses: gp-devenv/gp-docker-image-cleanup@v2
with:
runAsUser: gpfister
retentionDays: 7
token: ${{ secrets.GHCR_IO_TOKEN }}
isOwnedByOrganization: true
# End
56 changes: 56 additions & 0 deletions .github/workflows/pull_request.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,56 @@
#
# gp-pico-devenv
# Copyright (c) 2023-2024, Greg PFISTER. MIT License.
#
# 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.
#

# Build and validate

name: Pull request

on:
# push:
# branches: [master]
pull_request:
branches: [master]

jobs:
build:
name: Build ghcr.io/gp-devenv/gp-pico-devenv
runs-on: ubuntu-22.04
strategy:
matrix:
ubuntuVersion: ['22.04', '24.04']
picoSDKVersion: ['2.0.0']
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Setup buildx
run: (cd src && ./scripts/buildx/setup.sh)
- name: Build using ghcr.io/gp-devenv/gp-base-devenv:${{ matrix.ubuntuVersion }} using Node.js v${{ matrix.picoSDKVersion }}
run: (cd src && ./scripts/buildx/build.sh $UBUNTU_VERSION $PICO_SDK_VERSION)
env:
UBUNTU_VERSION: ${{ matrix.ubuntuVersion }}
PICO_SDK_VERSION: ${{ matrix.picoSDKVersion }}
cleanup:
runs-on: ubuntu-22.04
needs: build
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Cleanup
uses: gp-devenv/gp-docker-image-cleanup@v2
with:
runAsUser: gpfister
token: ${{ secrets.GHCR_IO_TOKEN }}
retentionDays: 7
isOwnedByOrganization: true
testOnly: true
# End
57 changes: 57 additions & 0 deletions .github/workflows/release.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,57 @@
#
# gp-pico-devenv
# Copyright (c) 2023-2024, Greg PFISTER. MIT License.
#
# 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.
#

# Build and push

name: Release

on:
release:
types: [published]

jobs:
deploy:
name: Push ghcr.io/gp-devenv/gp-pico-devenv
runs-on: ubuntu-22.04
strategy:
matrix:
ubuntuVersion: ['22.04', '24.04']
picoSDKVersion: ['2.0.0']
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Setup buildx
run: (cd src && ./scripts/buildx/setup.sh)
- name: Authenticating
run: echo $GHCR_IO_TOKEN | docker login ghcr.io -u gpfister --password-stdin
env:
GHCR_IO_TOKEN: ${{secrets.ghcr_io_token}}
- name: Build and push to ghcr.io/gp-devenv/gp-pico-devenv:${{ matrix.ubuntuVersion }}-${{ matrix.picoSDKVersion }}
run: (cd src && ./scripts/buildx/push.sh $UBUNTU_VERSION $PICO_SDK_VERSION)
env:
UBUNTU_VERSION: ${{ matrix.ubuntuVersion }}
PICO_SDK_VERSION: ${{ matrix.picoSDKVersion }}
cleanup:
runs-on: ubuntu-22.04
needs: deploy
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Cleanup
uses: gp-devenv/gp-docker-image-cleanup@v2
with:
runAsUser: gpfister
token: ${{ secrets.GHCR_IO_TOKEN }}
retentionDays: 7
isOwnedByOrganization: true
# End
Loading

0 comments on commit 91e2a4b

Please sign in to comment.