-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #6 from kloudlite/release-v1.0.1
Release v1.0.1
- Loading branch information
Showing
8 changed files
with
225 additions
and
26 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,6 +1,5 @@ | ||
** | ||
!terraform/modules | ||
!terraform/bundles | ||
!terraform | ||
!build-scripts | ||
!infrastructure-templates | ||
!.ci |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,94 @@ | ||
name: build-images | ||
|
||
on: | ||
workflow_dispatch: | ||
|
||
push: | ||
paths: | ||
- cmd/** | ||
- infrastructure-templates/** | ||
- terraform/** | ||
- ".github/workflows/**" | ||
- Dockerfile | ||
- .ci/** | ||
|
||
permissions: | ||
contents: read | ||
packages: write | ||
|
||
jobs: | ||
docker-builds: | ||
strategy: | ||
matrix: | ||
name: | ||
- infrastructure-as-code | ||
- aws-spot-k3s-terminator | ||
include: | ||
- name: infrastructure-as-code | ||
buildDir: . | ||
imageRepo: ghcr.io/${{ github.repository }}/iac-job | ||
|
||
- name: aws-spot-k3s-terminator | ||
buildDir: cmd/aws-spot-k3s-terminator | ||
imageRepo: ghcr.io/${{ github.repository }}/aws-spot-k3s-terminator | ||
|
||
runs-on: ubuntu-latest | ||
name: Deploy to Docker Image | ||
steps: | ||
- name: Checkout | ||
uses: actions/checkout@v3 | ||
|
||
- name: Set up QEMU | ||
uses: docker/setup-qemu-action@v2 | ||
|
||
- name: Set up Docker Buildx | ||
uses: docker/setup-buildx-action@v2 | ||
|
||
- name: Log in to the Container registry | ||
uses: docker/login-action@v3 | ||
with: | ||
registry: ghcr.io | ||
username: ${{ github.actor }} | ||
password: ${{ secrets.GITHUB_TOKEN }} | ||
|
||
- name: Create Image Tag from branch name | ||
if: startsWith(github.ref, 'refs/heads/release') | ||
run: | | ||
set +e | ||
IMAGE_TAG=$(echo ${GITHUB_REF#refs/heads/} | sed 's/release-//g') | ||
echo "$IMAGE_TAG" | grep -i '\-nightly$' | ||
if [ $? -ne 0 ]; then | ||
IMAGE_TAG="$IMAGE_TAG-nightly" | ||
fi | ||
set -e | ||
echo "IMAGE_TAG=$IMAGE_TAG" >> $GITHUB_ENV | ||
echo "OVERRIDE_PUSHED_IMAGE=true" >> $GITHUB_ENV | ||
- name: Create Image Tag from tag | ||
if: startsWith(github.ref, 'refs/tags/') | ||
run: | | ||
IMAGE_TAG=$(echo ${GITHUB_REF#refs/tags/}) | ||
echo "IMAGE_TAG=$IMAGE_TAG" >> $GITHUB_ENV | ||
echo "OVERRIDE_PUSHED_IMAGE=false" >> $GITHUB_ENV | ||
- name: Build & Push Image | ||
if: startsWith(github.ref, 'refs/heads/release') || startsWith(github.ref, 'refs/tags/') | ||
run: | | ||
set +e | ||
pushd ${{matrix.buildDir}} | ||
image=${{matrix.imageRepo}}:$IMAGE_TAG | ||
echo "building image: $image" | ||
docker manifest inspect $image | ||
exit_status=$? | ||
if [ $exit_status -eq 0 ]; then | ||
[ "$OVERRIDE_PUSHED_IMAGE" = "false" ] && echo "image ($image) already exists, and override image is disable, exiting" && exit 0 | ||
echo "image exists, but override pushed image is set to true. proceeding with building image" | ||
fi | ||
set -e | ||
docker buildx build -t $image . --push |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,108 @@ | ||
name: | ||
|
||
on: | ||
workflow_dispatch: | ||
|
||
push: | ||
paths: | ||
- cmd/k3s-runner | ||
- ".github/workflows/**" | ||
|
||
permissions: | ||
contents: write | ||
id-token: write | ||
|
||
jobs: | ||
docker-builds: | ||
strategy: | ||
matrix: | ||
target_arch: | ||
- amd64 | ||
- arm64 | ||
|
||
runs-on: ubuntu-latest | ||
name: Deploy to Docker Image | ||
steps: | ||
- name: Checkout | ||
uses: actions/checkout@v3 | ||
|
||
- name: Install Go | ||
uses: actions/setup-go@v5 | ||
with: | ||
go-version: 1.21.5 | ||
|
||
- name: Install Task | ||
uses: arduino/setup-task@v1 | ||
with: | ||
version: 3.x | ||
repo-token: ${{ secrets.GITHUB_TOKEN }} | ||
|
||
- name: Install UPX | ||
run: | | ||
curl -L0 https://github.com/upx/upx/releases/download/v4.2.1/upx-4.2.1-amd64_linux.tar.xz > upx.tar.xz | ||
tar -xf upx.tar.xz | ||
sudo mv upx-4.2.1-amd64_linux/upx /usr/local/bin | ||
- name: Create Release Tag from branch name | ||
if: startsWith(github.ref, 'refs/heads/release') | ||
run: | | ||
set +e | ||
RELEASE_TAG=$(echo ${GITHUB_REF#refs/heads/} | sed 's/release-//g') | ||
echo "$RELEASE_TAG" | grep -i '\-nightly$' | ||
if [ $? -ne 0 ]; then | ||
RELEASE_TAG="$RELEASE_TAG-nightly" | ||
fi | ||
set -e | ||
echo "RELEASE_TAG=$RELEASE_TAG" >> $GITHUB_ENV | ||
echo "OVERRIDE_RELEASE=true" >> $GITHUB_ENV | ||
- name: Create Release Tag from tag | ||
if: startsWith(github.ref, 'refs/tags/') | ||
run: | | ||
RELEASE_TAG=$(echo ${GITHUB_REF#refs/tags/}) | ||
echo "RELEASE_TAG=$RELEASE_TAG" >> $GITHUB_ENV | ||
echo "OVERRIDE_RELEASE=false" >> $GITHUB_ENV | ||
- name: Build And Release | ||
env: | ||
GITHUB_TOKEN: "${{ secrets.GITHUB_TOKEN }}" | ||
RELEASE_TITLE: "kloudlite-k3s-runner" | ||
RELEASE_NOTES: "kloudlite k3s runner" | ||
GOARCH: ${{matrix.target_arch}} | ||
run: | | ||
pushd cmd/k3s-runner | ||
task build | ||
PRE_RELEASE=$OVERRIDE_RELEASE | ||
opts=("-R" "${{ github.repository }}") | ||
release=$(gh release list ${opts[@]} | tail -n +1 | (grep -iE "\s+$RELEASE_TAG\s+" || echo -n "") | awk '{print $3}') | ||
if [[ -z $release ]]; then | ||
echo "going to create release, as RELEASE ($RELEASE_TAG) does not exist" | ||
createOpts="${opts[@]}" | ||
if [ $PRE_RELEASE = "true" ]; then | ||
createOpts+=("--prerelease") | ||
fi | ||
if ! [[ -z $RELEASE_TITLE ]]; then | ||
createOpts+=("--title" "'$RELEASE_TITLE'") | ||
fi | ||
createOpts+=("--notes" "'$RELEASE_NOTES'") | ||
echo "creating github release with cmd: \`gh release create $RELEASE_TAG ${createOpts[@]}\` " | ||
eval gh release create "$RELEASE_TAG" ${createOpts[@]} --generate-notes | ||
fi | ||
uploadOpts="${opts[@]}" | ||
if [ "$OVERRIDE_RELEASE" = "true" ]; then | ||
uploadOpts+=("--clobber") | ||
fi | ||
echo "uploading buillt binary with cmd: \`gh release upload $RELEASE_TAG ${uploadOpts[*]} bin/*\`" | ||
gh release upload "$RELEASE_TAG" ${uploadOpts[@]} bin/* |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters