Skip to content

Commit

Permalink
[ci] Automatically create release when pushing to main (#9)
Browse files Browse the repository at this point in the history
  • Loading branch information
Yannic authored Oct 30, 2024
1 parent e8201c8 commit 6defc4b
Show file tree
Hide file tree
Showing 2 changed files with 63 additions and 4 deletions.
63 changes: 62 additions & 1 deletion .github/workflows/main.yml
Original file line number Diff line number Diff line change
Expand Up @@ -13,11 +13,72 @@ env:
OPAL_RPC_CREDENTIALS: ${{ secrets.OPAL_RPC_CREDENTIALS }}

jobs:
build-all:
check:
runs-on: ubuntu-latest

steps:
- uses: actions/checkout@v4

- name: Build
run: bazel build //...

publish:
runs-on: ubuntu-latest
needs:
- "check"
if: github.ref == 'refs/heads/main'

steps:
- uses: actions/checkout@v4

- name: Create tag
id: "tag"
env:
GIT_AUTHOR_NAME: "EngFlow"
GIT_AUTHOR_EMAIL: "[email protected]"
GIT_COMMITTER_NAME: "EngFlow"
GIT_COMMITTER_EMAIL: "[email protected]"
run: |
VERSION="$(date -u '+%Y.%m.%d-%H.%M.%S')"
echo "version=${VERSION}" >> "${GITHUB_OUTPUT}"
# 1. Download `buildozer`
curl -o "${RUNNER_TEMP}/buildozer" -L "https://github.com/bazelbuild/buildtools/releases/download/v7.3.1/buildozer-linux-amd64"
chmod +x "${RUNNER_TEMP}/buildozer"
# 2. Update `MODULE.bazel` and commit.
"${RUNNER_TEMP}/buildozer" "set version ${VERSION}" "//MODULE.bazel:engflowapis"
git add "MODULE.bazel"
git commit -m "Release ${VERSION}"
# 3. Push release tag.
git tag "${VERSION}" "HEAD"
git push origin "${VERSION}"
# 4. Create release tarball
git archive -o "${RUNNER_TEMP}/archive.tar.gz" "${VERSION}"
- name: Create GitHub Release
id: "create-release"
uses: actions/create-release@v1
with:
tag_name: ${{ steps.tag.outputs.version }}
release_name: Release ${{ steps.tag.outputs.version }}
body: |
# EngFlow APIs ${{ steps.tag.outputs.version }}
To use this module, please add the following to `MODULE.bazel`:
```starlark
bazel_dep(name = "engflowapis", version = "${{ steps.tag.outputs.version }}")
```
prerelease: true

- name: Upload Tarball
id: upload-release-asset
uses: actions/upload-release-asset@v1
with:
upload_url: ${{ steps.create-release.outputs.upload_url }}
asset_path: ${{ runner.temp }}/archive.tar.gz
asset_name: engflowapis-${{ steps.tag.outputs.version }}.tar.gz
asset_content_type: "application/gzip"
4 changes: 1 addition & 3 deletions MODULE.bazel
Original file line number Diff line number Diff line change
@@ -1,19 +1,17 @@
module(
name = "engflowapis",
version = "2024.10.16",
version = "HEAD", # Automatically updated by release pipeline.
)

bazel_dep(
name = "rules_proto",
version = "6.0.2",
)

bazel_dep(
name = "protobuf",
version = "28.2",
repo_name = "com_google_protobuf",
)

bazel_dep(
name = "googleapis",
version = "0.0.0-20240819-fe8ba054a",
Expand Down

0 comments on commit 6defc4b

Please sign in to comment.