Skip to content

chore: fix duration comments (minutes => seconds (#130) #68

chore: fix duration comments (minutes => seconds (#130)

chore: fix duration comments (minutes => seconds (#130) #68

Workflow file for this run

name: Release
env:
REGISTRY_IMAGE: ${{ github.repository_owner }}/${{ github.event.repository.name }}
on:
push:
# Docs on syntax: https://docs.github.com/en/actions/writing-workflows/workflow-syntax-for-github-actions#filter-pattern-cheat-sheet
tags:
- "v[0-9]+.[0-9]+.[0-9]+**"
# Taken from https://docs.docker.com/build/ci/github-actions/multi-platform/#distribute-build-across-multiple-runners
jobs:
debian-build-and-merge-docker:
uses: ./.github/workflows/_build-and-merge-docker.yml
with:
distro: debian
secrets: inherit
alpine-build-and-merge-docker:
uses: ./.github/workflows/_build-and-merge-docker.yml
with:
distro: alpine
secrets: inherit
# We don't use the Rust client for now
# To re-enable later
# rust-client-release:
# runs-on: ubuntu-latest
# needs: javascript-client-release
# services:
# postgres:
# image: postgres:13
# env:
# POSTGRES_PASSWORD: postgres
# POSTGRES_DB: nittei
# ports:
# - 5432:5432
# env:
# DATABASE_URL: postgresql://postgres:postgres@localhost/nittei
# steps:
# - name: Checkout
# uses: actions/checkout@v2
# - name: Set version env
# run: |
# # v1.0.0 --> 1.0.0
# VERSION=${GITHUB_REF#refs/*/}
# echo "VERSION=${VERSION:1}" >> $GITHUB_ENV
# - name: Wait for remote to become up to date
# run: |
# duration=15
# echo "sleeping $duration seconds ..."
# sleep $duration
# echo "sleeping $duration seconds ... DONE"
# - uses: actions/cache@v2
# with:
# path: |
# ~/.cargo/bin/
# ~/.cargo/registry/index/
# ~/.cargo/registry/cache/
# ~/.cargo/git/db/
# scheduler/target/
# key: ${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.lock') }}
# - name: Run migrations
# run: |
# cd scheduler
# cargo install sqlx-cli --no-default-features --features postgres || true
# (cd crates/infra && sqlx migrate run)
# - name: Login to crates.io
# env:
# CRATE_PUBLISH_TOKEN: ${{secrets.CRATE_PUBLISH_TOKEN}}
# run: |
# cargo login $CRATE_PUBLISH_TOKEN
# - name: Set version numbers
# run: |
# # What follows is a lot of search and replace magic for Cargo.toml to update
# # version number for a crate and its dependenices. It seems like there
# # is no good tool that can bump version numbers in a cargo workspace yet.
# cd scheduler
# cd crates/utils
# sed -i "0,/\(version *= *\).*/{s/\(version *= *\).*/\1\"$VERSION\"/}" ./Cargo.toml
# cd ../../
# cd crates/domain
# sed -i "0,/\(version *= *\).*/{s/\(version *= *\).*/\1\"$VERSION\"/}" ./Cargo.toml
# sed -i "s/path = \"..\/utils\", version = \"*.*.*\"/path = \"..\/utils\", version = \"$VERSION\"/" ./Cargo.toml
# cd ../../
# cd crates/api_structs
# sed -i "0,/\(version *= *\).*/{s/\(version *= *\).*/\1\"$VERSION\"/}" ./Cargo.toml
# sed -i "s/path = \"..\/domain\", version = \"*.*.*\"/path = \"..\/domain\", version = \"$VERSION\"/" ./Cargo.toml
# echo "api_structs toml"
# cat ./Cargo.toml
# echo "api_structs toml DONE"
# cd ../../
# cd crates/infra
# sed -i "0,/\(version *= *\).*/{s/\(version *= *\).*/\1\"$VERSION\"/}" ./Cargo.toml
# cd ../../
# cd crates/api
# sed -i "0,/\(version *= *\).*/{s/\(version *= *\).*/\1\"$VERSION\"/}" ./Cargo.toml
# cd ../../
# cd clients/rust
# sed -i "0,/\(version *= *\).*/{s/\(version *= *\).*/\1\"$VERSION\"/}" ./Cargo.toml
# sed -i "s/path = \"..\/..\/crates\/domain\", version = \"*.*.*\"/path = \"..\/..\/crates\/domain\", version = \"$VERSION\"/" ./Cargo.toml
# sed -i "s/path = \"..\/..\/crates\/api_structs\", version = \"*.*.*\"/path = \"..\/..\/crates\/api_structs\", version = \"$VERSION\"/" ./Cargo.toml
# echo "SDK toml"
# cat ./Cargo.toml
# echo "SDK toml DONE"
# cd ../../
# # Root Cargo.toml
# sed -i "0,/\(version *= *\).*/{s/\(version *= *\).*/\1\"$VERSION\"/}" ./Cargo.toml
# cargo check --all
# - name: Publish crates
# run: |
# cd scheduler
# cd crates/utils
# cargo publish --allow-dirty
# cd ../../
# # Make sure published version is available at crates.io
# sleep 30
# cd crates/domain
# cargo publish --allow-dirty
# cd ../../
# # Make sure published version is available at crates.io
# sleep 30
# cd crates/api_structs
# cargo publish --allow-dirty
# cd ../../
# # Make sure published version is available at crates.io
# sleep 30
# cd clients/rust
# cargo publish --allow-dirty
# cd ../../
# - name: Commit & Push version changes
# uses: actions-js/push@master
# with:
# github_token: ${{ secrets.GITHUB_TOKEN }}
# branch: master
# message: |
# Autopublish: Update cargo workspace deps on release
javascript-client-release:
runs-on: ubuntu-latest
needs:
- debian-build-and-merge-docker
- alpine-build-and-merge-docker
permissions:
contents: read
packages: write
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Set version env
run: |
# v1.0.0 --> 1.0.0
VERSION=${GITHUB_REF#refs/*/}
echo "VERSION=${VERSION:1}" >> $GITHUB_ENV
- name: Setup Node.js 20
uses: actions/setup-node@v4
with:
node-version: 20
registry-url: "https://npm.pkg.github.com"
scope: "@meetsmore"
- name: Setup pnpm
uses: pnpm/action-setup@v4
- name: Install deps
run: |
cd clients/javascript
pnpm install
- name: Set version number
run: |
cd clients/javascript
pnpm version $VERSION
- name: Publish package
run: |
cd clients/javascript
pnpm run deploy
env:
NODE_AUTH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
helm-chart-release:
needs: javascript-client-release
permissions:
contents: write
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Configure Git
run: |
git config user.name "$GITHUB_ACTOR"
git config user.email "[email protected]"
- name: Install Helm
uses: azure/setup-helm@v4
env:
GITHUB_TOKEN: "${{ secrets.GITHUB_TOKEN }}"
- name: Set version env
run: |
# v1.0.0 --> 1.0.0
VERSION=${GITHUB_REF#refs/*/}
echo "VERSION=${VERSION:1}" >> $GITHUB_ENV
- name: Set Chart to tag version
run: |
sed -i "s/\$VERSION_REPLACED_IN_CI/$VERSION/g" charts/nittei/Chart.yaml
sed -i "s/\$VERSION_REPLACED_IN_CI/$VERSION/g" charts/nittei/values.yaml
- name: Debug mark as latest
run: |
echo "github.event.release: ${{ github.event.release }}"
echo "github.event.release.prerelease: ${{ github.event.release.prerelease }}"
echo "mark_as_latest: ${{ !github.event.release.prerelease }}"
- name: Run chart-releaser
uses: helm/[email protected]
env:
CR_TOKEN: "${{ secrets.GITHUB_TOKEN }}"
mark_as_latest: "${{ !github.event.release.prerelease }}"