Skip to content

Commit

Permalink
ci: merge build and release docker release target
Browse files Browse the repository at this point in the history
  • Loading branch information
Alex Sukhov committed Jun 18, 2023
1 parent f0be451 commit a31f938
Show file tree
Hide file tree
Showing 2 changed files with 14 additions and 38 deletions.
34 changes: 6 additions & 28 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,8 @@ env:
FORCE_COLOR: 1

jobs:
build_and_push:
release:
if: startsWith(github.ref, 'refs/tags/v')
runs-on: ubuntu-latest
steps:
- name: Set up QEMU for multiplatform builds
Expand Down Expand Up @@ -50,10 +51,12 @@ jobs:

- name: Build and push docker image
run: |
earthly --ci --push +multiplatformBuild \
earthly --ci --push +build-and-release \
--GITHUB_TOKEN=${{ secrets.GITHUB_TOKEN }} \
--DOCKERHUB_REPO=$GITHUB_REPO \
--DOCKERHUB_USERNAME=$DOCKERHUB_USERNAME \
--DOCKERHUB_ACCESS_TOKEN=$DOCKERHUB_TOKEN
--DOCKERHUB_ACCESS_TOKEN=$DOCKERHUB_TOKEN \
--RELEASE_VERSION=${GITHUB_REF:10}
- name: Docker Hub Description
uses: peter-evans/dockerhub-description@v3
Expand All @@ -62,28 +65,3 @@ jobs:
password: ${{ env.DOCKERHUB_TOKEN }}
repository: ${{ env.GITHUB_REPO }}
short-description: ${{ github.event.repository.description }}

release:
permissions:
contents: write
# needs: test
if: startsWith(github.ref, 'refs/tags/v')
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Put back the git branch into git (Earthly uses it for tagging)
run: |
branch=""
if [ -n "$GITHUB_HEAD_REF" ]; then
branch="$GITHUB_HEAD_REF"
else
branch="${GITHUB_REF##*/}"
fi
git checkout -b "$branch" || true
- name: Download Earthly
run: "sudo /bin/sh -c 'wget https://github.com/earthly/earthly/releases/download/v0.7.8/earthly-linux-amd64 -O /usr/local/bin/earthly && chmod +x /usr/local/bin/earthly'"
- name: Build and create release
run: |
earthly --ci +release \
--RELEASE_VERSION=${GITHUB_REF:10} \
--GITHUB_TOKEN=${{ secrets.GITHUB_TOKEN }}
18 changes: 8 additions & 10 deletions Earthfile
Original file line number Diff line number Diff line change
Expand Up @@ -3,16 +3,16 @@ VERSION 0.7
ARG --global DOCKERHUB_REPO=cyxou/firefly-iii-telegram-bot
ARG --global DOCKERHUB_USERNAME=cyxou
ARG --global DOCKERHUB_ACCESS_TOKEN
ARG --global GITHUB_TOKEN
ARG --global RELEASE_VERSION=latest

FROM node:20-bullseye
WORKDIR /home/node/app

COPY package.json .
RUN node -e "console.log(require('./package.json').version)" > ./version.txt
ARG VERSION=$(cat ./version.txt)
WORKDIR /home/node/app

multiplatformBuild:
build-and-release:
BUILD --platform=linux/amd64 --platform=linux/arm +buildImage
BUILD +release

validatePR:
BUILD +runTests
Expand Down Expand Up @@ -44,14 +44,12 @@ runTests:
RUN echo "😞 No tests yet..."

buildImage:
ARG TAG=${VERSION}

COPY +buildDist/dist ./dist
COPY +deps/node_modules_prod ./node_modules

CMD ["dist/index.js"]

SAVE IMAGE --push $DOCKERHUB_REPO:$TAG
SAVE IMAGE --push $DOCKERHUB_REPO:$RELEASE_VERSION
SAVE IMAGE --push $DOCKERHUB_REPO:latest

checkIfTagExist:
Expand All @@ -71,7 +69,7 @@ checkIfTagExist:
release:
ARG --required GITHUB_TOKEN
ARG --required RELEASE_VERSION
ARG OUT_BASE="./dist"
ENV OUT_BASE="./dist"
ENV REPO="cyxou/firefly-iii-telegram-bot"

COPY +buildDist/dist ./dist
Expand All @@ -84,7 +82,7 @@ release:
&& gh --version

# Generate release notes
RUN gh api -X POST 'repos/${REPO}/releases/generate-notes' \
RUN gh api -X POST "repos/${REPO}/releases/generate-notes" \
-F commitish=${RELEASE_VERSION} \
-F tag_name=${RELEASE_VERSION} \
> tmp-release-notes.json
Expand Down

0 comments on commit a31f938

Please sign in to comment.