diff --git a/.github/workflows/publich_public_package.yml b/.github/workflows/publich_public_package.yml deleted file mode 100644 index 19a2ea2..0000000 --- a/.github/workflows/publich_public_package.yml +++ /dev/null @@ -1,45 +0,0 @@ -name: Publish package to Hex.pm - -on: - release: - types: [published] - -jobs: - publish: - runs-on: ubuntu-latest - - steps: - - name: Set up SSH key - uses: webfactory/ssh-agent@v0.9.0 - with: - ssh-private-key: ${{ secrets.WTTJ_DEPLOYER }} - - - uses: actions/checkout@v4 - - - name: Set up Elixir - uses: erlef/setup-beam@v1 - with: - elixir-version: '1.17.2' - otp-version: '26.2.5.2' - - - name: Extract library name and version - run: | - RELEASE_NAME=${{ github.event.release.tag_name }} - VERSION=$(echo $RELEASE_NAME | cut -d'v' -f2) - echo "LIB_NAME=$LIB_NAME" >> $GITHUB_ENV - echo "VERSION=$VERSION" >> $GITHUB_ENV - - - name: Configure package access - run: | - mix local.hex --force - mix hex.organization auth wttj --key ${{ secrets.HEXPM_KEY }} - - - name: Install dependencies - run: | - mix deps.get - - - name: Publish to Hex.pm - env: - HEX_API_KEY: ${{ secrets.HEXPM_KEY }} - run: | - mix hex.publish --yes diff --git a/.github/workflows/publish_public_package.yml b/.github/workflows/publish_public_package.yml new file mode 100644 index 0000000..e494bfc --- /dev/null +++ b/.github/workflows/publish_public_package.yml @@ -0,0 +1,44 @@ +name: Publish package to Hex.pm + +on: + release: + types: [released] + +jobs: + publish: + runs-on: ubuntu-latest + if: "!github.event.release.prerelease" + + steps: + - uses: actions/checkout@v4 + + - name: Set up Elixir + uses: erlef/setup-beam@v1 + with: + elixir-version: '1.17.2' + otp-version: '26.2.5.2' + + - name: Install dependencies + run: | + mix deps.get + + - name: Compile + run: | + mix compile + + - name: Check version consistency + run: | + MIX_VERSION=$(mix run -e 'IO.puts Mix.Project.config[:version]') + RELEASE_VERSION=${{ github.event.release.tag_name }} + RELEASE_VERSION=${RELEASE_VERSION#v} + + if [ "$MIX_VERSION" != "$RELEASE_VERSION" ]; then + echo "Version mismatch: mix.exs version ($MIX_VERSION) != release version ($RELEASE_VERSION)" + exit 1 + fi + + - name: Publish to Hex.pm + env: + HEX_API_KEY: ${{ secrets.HEXPM_PUBLIC_PACKAGES_KEY }} + run: | + mix hex.publish --yes