fix: testing complete flow with enviroment variable and secrets 3 #130
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
name: Release | |
on: | |
push: | |
branches: [ main ] | |
pull_request: | |
branches: [ main ] | |
release: | |
types: [ created ] | |
permissions: | |
contents: write | |
issues: write | |
pull-requests: write | |
id-token: write | |
jobs: | |
release: | |
environment: ACTIONS_ENV | |
runs-on: ubuntu-latest | |
env: | |
GITHUB_TOKEN: ${{ secrets.GH_TOKEN_2 }} | |
NPM_TOKEN: ${{ secrets.NPM_TOKEN }} | |
HEX_API_KEY: ${{ secrets.HEX_API_KEY }} | |
GITHUB_API_URL: ${{ vars.GH_API_URL }} | |
PUBLISH_ARTIFACT: ${{ vars.PUBLISH_ARTIFACT }} | |
RELEASE_VERSION: ${{ vars.RELEASE_VERSION }} | |
steps: | |
- uses: actions/checkout@v4 | |
# - name: Set up JDK 17 | |
# uses: actions/setup-java@v4 | |
# with: | |
# java-version: '17' | |
# distribution: 'adopt' | |
# cache: maven | |
- name: Setup Node.js | |
uses: actions/setup-node@v4 | |
with: | |
node-version: 20.x | |
# - name: Install zip package | |
# uses: montudor/action-zip@v1 | |
# - name: SetUp Angular CLI | |
# run: npm install -g @angular/cli | |
- name: Set up Elixir 1.14.3 and Otp 25 | |
uses: erlef/setup-beam@v1 | |
with: | |
elixir-version: '1.14.3' | |
otp-version: '25' | |
# - name: Build with Maven | |
# run: mvn -B package -DskipTests --file SpringBoot/Konex/pom.xml | |
# - name: Build with Angular | |
# run: | | |
# npm run ng analytics off --prefix Angular/Konex/ | |
# npm install --prefix Angular/Konex/ | |
# npm run build --prefix Angular/Konex/ | |
# - name: Zip Angular dist | |
# run: zip -qq -r dist.zip konex-app | |
# working-directory: Angular/Konex/dist | |
- name: setup semantic-release | |
run: npm install -g semantic-release @semantic-release/exec @semantic-release/changelog @semantic-release/github -D | |
- name: release | |
run: npx -p @semantic-release/changelog -p @semantic-release/exec semantic-release | |
- name: Set variables From VERSION-TAG.env | |
run: | | |
VER=$(cat VERSION-TAG.env) | |
echo "$VER" | |
echo "RELEASE_VERSION=$VER" >> $GITHUB_ENV | |
- name: Validate conditions | |
run: | | |
echo "RELEASE_VERSION=${{ env.RELEASE_VERSION }}" | |
echo "RELEASE_VERSION=${RELEASE_VERSION}" | |
echo "CONDITION RELEASE_VERSION=${{ env.RELEASE_VERSION != '' }}" | |
echo "CONDITION PUBLISH_ARTIFACT=${{ env.PUBLISH_ARTIFACT != '' }}" | |
echo "GITHUB_API_URL=${{ env.GITHUB_API_URL }}" | |
echo "PUBLISH_ARTIFACT=${{ env.PUBLISH_ARTIFACT }}" | |
# - name: Restore dependencies cache | |
# uses: actions/cache@v4 | |
# with: | |
# path: Elixir/Konex/deps | |
# key: ${{ runner.os }}-mix-${{ hashFiles('**/Elixir/Konex/mix.lock') }} | |
# restore-keys: ${{ runner.os }}-mix- | |
- name: Install Mix dependencies | |
if: ${{ (vars.PUBLISH_ARTIFACT == true) && (env.RELEASE_VERSION != '') }} | |
run: mix deps.get && mix deps.compile | |
working-directory: Elixir/Konex | |
env: | |
SKIP_GIT_HOOKS: 'true' | |
- name: Run Mix tests | |
if: ${{ (vars.PUBLISH_ARTIFACT == true) && (env.RELEASE_VERSION != '') }} | |
run: mix test | |
working-directory: Elixir/Konex | |
- name: Upgrade mix.exs | |
if: ${{ (vars.PUBLISH_ARTIFACT == true) && (env.RELEASE_VERSION != '') }} | |
run: sed -i 's/@version \".*\"/@version "${{ env.RELEASE_VERSION }}"/g' mix.exs | |
working-directory: Elixir/Konex | |
# - name: Commit And Push version | |
# if: ${{ (vars.PUBLISH_ARTIFACT == true) && (env.RELEASE_VERSION != '') }} | |
# uses: github-actions-x/[email protected] | |
# with: | |
# github-token: ${{ env.GITHUB_TOKEN }} | |
# push-branch: main | |
# commit-message: '[skip release] Upgrade version to ${{ env.RELEASE_VERSION }}' | |
# force-add: "true" | |
# files: mix.exs | |
# name: Release Bot | |
# email: [email protected] | |
- name: Publish to HEX | |
if: ${{ (vars.PUBLISH_ARTIFACT == true) && (env.RELEASE_VERSION != '') }} | |
run: mix hex.publish --replace --yes | |
working-directory: Elixir/Konex | |
env: | |
HEX_API_KEY: ${{ secrets.HEX_API_KEY }} |