-
Notifications
You must be signed in to change notification settings - Fork 0
128 lines (110 loc) · 6.81 KB
/
template-main.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
name: Release
on:
push:
branches: [ main, feature/semantic_release ]
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 }}
DEBUG_MODE: ${{ vars.DEBUG_MODE }}
COMMIT_PUSH: ${{ vars.COMMIT_PUSH }}
ELIXIR_VERSION: ${{ vars.ELIXIR_VERSION }}
OTP_VERSION: ${{ vars.OTP_VERSION }}
SKIP_GIT_HOOKS: 'true'
SKIP_RELEASE: ${{ contains(github.event.head_commit.message, '[skip release]') || contains(github.event.head_commit.message, '[skip ci]') || contains(github.event.head_commit.message, '[release skip]') || contains(github.event.head_commit.message, '[ci skip]') }}
GITHUB_BRANCH: ${GITHUB_REF#refs/*/}
GITHUB_REPO_URL: "${{ github.server_url }}/${{ github.repository }}.git"
steps:
- uses: actions/checkout@v4
- name: Create A File
if: ${{ env.SKIP_RELEASE == 'false' }}
run: echo '{"repositoryUrl":"${{ env.GITHUB_REPO_URL }}","branches":["${{ env.GITHUB_BRANCH }}"],"plugins":[["@semantic-release/commit-analyzer",{"preset":"eslint","releaseRules":[{"tag":"breaking","release":"major"},{"tag":"feat","release":"minor"},{"tag":"chore","release":"minor"},{"tag":"refactor","release":"minor"},{"tag":"update","release":"minor"},{"tag":"upgrade","release":"minor"},{"tag":"docs","release":"patch"},{"tag":"ci","release":"patch"},{"tag":"fix","release":"patch"},{"tag":"test","release":"patch"},{"tag":"perf","release":"patch"},{"scope":"no-release","release":false}]}],["@semantic-release/release-notes-generator",{"preset":"conventionalcommits","presetConfig":{"types":[{"type":"breaking","section":"Major version release","hidden":false},{"type":"BREAKING","section":"Major version release","hidden":false},{"type":"BREAKING CHANGE","section":"Major version release","hidden":false},{"type":"BREAKING CHANGES","section":"Major version release","hidden":false},{"type":"feat","section":"Features","hidden":false},{"type":"fix","section":"Bug Fixes","hidden":false},{"type":"update","section":"Updates","hidden":false},{"type":"upgrade","section":"Upgrades","hidden":false},{"type":"docs","section":"Documentation","hidden":false},{"type":"chore","section":"Chores","hidden":false},{"type":"ci","section":"CI/CD Changes","hidden":false},{"type":"test","section":"Tests","hidden":false},{"type":"refactor","section":"Refactoring","hidden":false},{"type":"perf","section":"Performance Improvements","hidden":false}]},"writerOpts":{"commitsSort":["subject","scope"]}}],"@semantic-release/github",["@semantic-release/changelog",{"changelogFile":"docs/CHANGELOG.md"}]]}' > .releaserc2
- name: Set Actual Branch
if: ${{ env.SKIP_RELEASE == 'false' }}
id: vars
run: |
echo "file_content=$(cat .releaserc2)" >> $GITHUB_OUTPUT
echo "actual_branch=${GITHUB_REF#refs/*/}" >> $GITHUB_OUTPUT
#git config --get remote.origin.url
echo "${{ github.server_url }}/${{ github.repository }}"
#deprecated echo ::set-output name=actual_branch::${GITHUB_REF#refs/*/}
# - name: Setup Node.js
# if: ${{ env.SKIP_RELEASE == 'false' }}
# uses: actions/setup-node@v4
# with:
# node-version: 20.x
# - name: Set up Elixir 1.14.3 and Otp 25
# if: ${{ env.SKIP_RELEASE == 'false' }}
# uses: erlef/setup-beam@v1
# with:
# elixir-version: ${{ env.ELIXIR_VERSION }}
# otp-version: ${{ env.OTP_VERSION }}
# - name: Setup semantic-release
# if: ${{ env.SKIP_RELEASE == 'false' }}
# run: npm install -g semantic-release @semantic-release/changelog @semantic-release/github conventional-changelog-eslint conventional-changelog-conventionalcommits conventional-changelog-angular -D
# - name: Release
# if: ${{ env.SKIP_RELEASE == 'false' }}
# run: npx -p conventional-changelog-eslint -p conventional-changelog-conventionalcommits -p @semantic-release/changelog semantic-release
# - name: Set variables From git tag command
# if: ${{ env.SKIP_RELEASE == 'false' }}
# run: |
# echo "$VER"
# echo "RELEASE_VERSION=$(git tag | sort --version-sort | tail -n1 | tr -d 'v')" >> $GITHUB_ENV
- name: Validate variables
if: ${{ env.SKIP_RELEASE == 'false' && env.DEBUG_MODE == 'true' }}
run: |
echo "RELEASE_VERSION=${{ env.RELEASE_VERSION }}"
echo "CONDITION RELEASE_VERSION != '';=${{ env.RELEASE_VERSION != '' }}"
echo "CONDITION PUBLISH_ARTIFACT == '';=${{ env.RELEASE_VERSION == '' }}"
echo "CONDITION PUBLISH_ARTIFACT == TRUE;=${{ env.PUBLISH_ARTIFACT == 'true' }}"
echo "CONDITION PUBLISH_ARTIFACT == FALSE;=${{ env.PUBLISH_ARTIFACT == 'false' }}"
echo "GITHUB_API_URL=${{ env.GITHUB_API_URL }}"
echo "PUBLISH_ARTIFACT=${{ env.PUBLISH_ARTIFACT }}"
echo "COMMIT_PUSH=${{ env.COMMIT_PUSH }}"
echo "DEBUG_MODE=${{ env.DEBUG_MODE }}"
echo "COMMIT_LAST_MESSAGE: ${{ github.event.head_commit.message }}"
echo "SKIP_RELEASE: ${{ env.SKIP_RELEASE }}"
echo "GITHUB_BRANCH: ${{ env.GITHUB_BRANCH }}"
echo "GITHUB_REPO_URL: ${{ env.GITHUB_REPO_URL }}"
echo ${{ steps.vars.outputs.file_content }}
echo ${{ steps.vars.outputs.actual_branch }}
# # COMMIT_PUSH steps
# - name: Upgrade mix.exs
# if: ${{ env.SKIP_RELEASE == 'false' && env.COMMIT_PUSH == 'true' }}
# run: sed -i 's/@version \".*\"/@version "${{ env.RELEASE_VERSION }}"/g' mix.exs
# working-directory: Elixir/Konex
# - name: Commit And Push version
# if: ${{ env.SKIP_RELEASE == 'false' && env.COMMIT_PUSH == 'true' }}
# uses: github-actions-x/[email protected]
# with:
# github-token: ${{ env.GITHUB_TOKEN }}
# push-branch: ${{ env.GITHUB_BRANCH }}
# commit-message: '[skip release] [skip ci] Upgrade version to ${{ env.RELEASE_VERSION }}'
# force-add: "true"
# files: Elixir/Konex/mix.exs docs/CHANGELOG.md
# name: Release Bot
# email: [email protected]
# # PUBLISH_ARTIFACT steps
# - name: Install Mix dependencies
# if: ${{ env.SKIP_RELEASE == 'false' && env.PUBLISH_ARTIFACT == 'true' }}
# run: mix deps.get && mix deps.compile
# working-directory: Elixir/Konex
# - name: Run Mix tests
# if: ${{ env.SKIP_RELEASE == 'false' && env.PUBLISH_ARTIFACT == 'true' }}
# run: mix test
# working-directory: Elixir/Konex
# - name: Publish to HEX
# if: ${{ env.SKIP_RELEASE == 'false' && env.PUBLISH_ARTIFACT == 'true' }}
# run: mix hex.publish --replace --yes
# working-directory: Elixir/Konex