Files
stack/releases/Earthfile

58 lines
1.9 KiB
Plaintext

VERSION --arg-scope-and-set --pass-args --use-function-keyword 0.7
ARG core=github.com/formancehq/earthly:v0.6.0
IMPORT $core AS core
IMPORT ./../ AS stack
sources:
FROM core+base-image
COPY . /src
SAVE ARTIFACT /src
sdk-generate:
ARG version=INTERNAL
ARG LANG=go
FROM node:20-alpine
RUN apk update && apk add yq git
WORKDIR /src
COPY (stack+speakeasy/speakeasy) /bin/speakeasy
COPY (stack+build-final-spec/latest.json --version=$version) /src/releases/build/latest.json
WORKDIR /src/releases
RUN rm -rf ./sdks/${LANG}/gen.yaml ./sdks/${LANG}/LICENSE ./sdks/${LANG}/.github/workflows
COPY --dir templates/sdk/${LANG}/* ./sdks/${LANG}/
RUN --secret SPEAKEASY_API_KEY speakeasy generate sdk -s ./build/latest.json -o ./sdks/${LANG} -l ${LANG}
SAVE ARTIFACT /src/releases/sdks/${LANG} AS LOCAL ./sdks/${LANG}
sdk-publish:
ARG --required version
ARG LANG=go
FROM node:20-alpine
RUN apk update && apk add yq git
WORKDIR /src
GIT CLONE https://github.com/formancehq/formance-sdk-${LANG}.git ./sdks/${LANG}
RUN rm -rf ./sdks/${LANG}/*
RUN rm -rf ./sdks/${LANG}/.github/*
COPY --dir ./sdks/${LANG} ./sdks/
WORKDIR /src/sdks/${LANG}
RUN git config --global user.email "[email protected]"
RUN git config --global user.name "NumaryBot"
RUN git checkout -b release/${version}
RUN git add .
RUN git commit -m "release(sdk): ${version}"
RUN git remote remove origin
RUN --secret GITHUB_TOKEN git remote add origin https://${GITHUB_TOKEN}@github.com/formancehq/formance-sdk-${LANG}.git
RUN --secret GITHUB_TOKEN git push origin release/${version} --force
sdk-generate-all:
ARG --required version
LOCALLY
FOR lang IN $(ls templates/sdk)
BUILD --pass-args +sdk-generate --LANG=${lang}
END
sdk-publish-all:
ARG --required version
LOCALLY
FOR lang IN $(ls templates/sdk)
BUILD --pass-args +sdk-publish --LANG=${lang}
END