-
Notifications
You must be signed in to change notification settings - Fork 12
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
add starship requirements in dockerfile, add docker gh action #61
Changes from 3 commits
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,80 @@ | ||
name: Docker | ||
|
||
on: | ||
push: | ||
branches: | ||
- main | ||
tags: | ||
- "v*.*.*" | ||
pull_request: | ||
branches: | ||
- main | ||
workflow_dispatch: | ||
inputs: | ||
tags: | ||
description: "Tags to build and push" | ||
required: true | ||
type: string | ||
|
||
permissions: | ||
contents: read | ||
packages: write | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. We need this to push to the docker registry, right? There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. yup |
||
|
||
jobs: | ||
build-push: | ||
runs-on: ubuntu-latest | ||
|
||
env: | ||
DOCKER_REGISTRY: ghcr.io | ||
DOCKER_IMAGE: osmosis-labs/meshd | ||
|
||
steps: | ||
- name: Checkout | ||
uses: actions/checkout@v3 | ||
with: | ||
fetch-depth: 0 | ||
|
||
- name: Setup Go | ||
uses: actions/setup-go@v4 | ||
with: | ||
go-version: "1.20" | ||
check-latest: true | ||
|
||
- name: Extract Docker metadata | ||
id: meta | ||
uses: docker/metadata-action@v4 | ||
with: | ||
images: ${{ env.DOCKER_REGISTRY }}/${{ env.DOCKER_IMAGE }} | ||
tags: | | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Do you use the tags for anything? There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. for versioning. As more versions of the mesh-security-sdk comes, we should be able to use the tagged version |
||
type=raw,value=latest,enable={{is_default_branch}} | ||
type=semver,pattern=v{{major}}.{{minor}} | ||
type=semver,pattern={{version}},value=v${{ inputs.tags }},enable=${{ inputs.tags != '' }} | ||
flavor: | | ||
latest=false | ||
|
||
- name: Set up QEMU | ||
uses: docker/setup-qemu-action@v2 | ||
|
||
- name: Set up Docker Buildx | ||
uses: docker/setup-buildx-action@v2 | ||
|
||
- name: Login to Docker Hub | ||
uses: docker/login-action@v1 | ||
with: | ||
registry: ghcr.io | ||
username: ${{ github.actor }} | ||
password: ${{ secrets.GITHUB_TOKEN }} | ||
|
||
- name: Run go vendor | ||
run: | | ||
cd demo/ && go mod vendor | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Agh, you need to vendor here, too. This is very inconvenient There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Yes, useally i would just have this part of the dockerfile itself, but the current system seemed to take pre built vendor dir |
||
|
||
- name: Publish to GitHub Packages | ||
uses: docker/build-push-action@v4 | ||
with: | ||
platforms: linux/amd64,linux/arm64 | ||
push: ${{ github.event_name != 'pull_request' }} | ||
tags: ${{ steps.meta.outputs.tags }} | ||
cache-from: type=gha | ||
cache-to: type=gha,mode=max | ||
context: demo/ |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,5 +1,4 @@ | ||
FROM golang:1.20-alpine AS go-builder | ||
ARG ARCH=x86_64 | ||
|
||
RUN apk add --no-cache ca-certificates build-base git | ||
|
||
|
@@ -13,7 +12,7 @@ ADD go.mod go.sum ./ | |
RUN set -eux; \ | ||
WASM_VERSION=v$(go list -m github.com/CosmWasm/wasmvm | cut -d" " -f2 | cut -d"v" -f2); \ | ||
echo $WASM_VERSION; \ | ||
wget -O /lib/libwasmvm_muslc.a https://github.com/CosmWasm/wasmvm/releases/download/${WASM_VERSION}/libwasmvm_muslc.${ARCH}.a | ||
wget -O /lib/libwasmvm_muslc.a https://github.com/CosmWasm/wasmvm/releases/download/${WASM_VERSION}/libwasmvm_muslc.$(uname -m).a | ||
|
||
# Copy over code | ||
COPY . /code | ||
|
@@ -31,9 +30,15 @@ FROM alpine:3.16 | |
|
||
COPY --from=go-builder /code/build/meshd /usr/bin/meshd | ||
|
||
# Set up dependencies used for Starship | ||
ENV PACKAGES curl make bash jq sed | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Why do you use an ENV for this and not just add it to L37? There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Can do. will change it. |
||
|
||
# Install minimum necessary dependencies | ||
RUN apk add --no-cache $PACKAGES | ||
|
||
WORKDIR /opt | ||
|
||
# rest server, tendermint p2p, tendermint rpc | ||
EXPOSE 1317 26656 26657 | ||
|
||
CMD ["/usr/bin/meshd", "version"] | ||
CMD ["/usr/bin/meshd", "version"] |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Just checking, does this covers RC tags like
v0.1.2-rc.3
as well?There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I just took it from: https://github.com/osmosis-labs/mesh-security-sdk/blob/main/.github/workflows/release.yml#L6
I would like to have something like:
https://github.com/cosmos/cosmos-sdk/blob/main/.github/workflows/docker.yml#L11...L13
But did not want to deviate from the repo practices